- refactor array equality check and add tests - remove OperatingSystem.Unknown causing extra logic, return undefined instead - refactor enum validation to share same logic - refactor scripting language factories to share same logic - refactor too many args in runCodeAsync - refactor ScriptCode constructor to reduce complexity - fix writing useless write to member object since another property write always override it
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { expect } from 'chai';
|
|
import { OperatingSystem } from '@/domain/OperatingSystem';
|
|
import { BrowserOsDetector } from '@/application/Environment/BrowserOs/BrowserOsDetector';
|
|
import { BrowserOsTestCases } from './BrowserOsTestCases';
|
|
|
|
describe('BrowserOsDetector', () => {
|
|
it('returns undefined when user agent is undefined', () => {
|
|
// arrange
|
|
const expected = undefined;
|
|
const sut = new BrowserOsDetector();
|
|
// act
|
|
const actual = sut.detect(undefined);
|
|
// assert
|
|
expect(actual).to.equal(expected);
|
|
});
|
|
it('detects as expected', () => {
|
|
for (const testCase of BrowserOsTestCases) {
|
|
// arrange
|
|
const sut = new BrowserOsDetector();
|
|
// act
|
|
const actual = sut.detect(testCase.userAgent);
|
|
// assert
|
|
expect(actual).to.equal(testCase.expectedOs,
|
|
`Expected: "${OperatingSystem[testCase.expectedOs]}"\n` +
|
|
`Actual: "${OperatingSystem[actual]}"\n` +
|
|
`UserAgent: "${testCase.userAgent}"`);
|
|
}
|
|
});
|
|
});
|