Add more and unify tests for absent object cases

- Unify test data for nonexistence of an object/string and collection.
- Introduce more test through adding missing test data to existing tests.
- Improve logic for checking absence of values to match tests.
- Add missing tests for absent value validation.
- Update documentation to include shared test functionality.
This commit is contained in:
undergroundwires
2022-01-21 22:34:11 +01:00
parent 0e52a99efa
commit 44d79e2c9a
100 changed files with 1380 additions and 976 deletions

View File

@@ -3,6 +3,7 @@ import { expect } from 'chai';
import { EnvironmentStub } from '@tests/unit/stubs/EnvironmentStub';
import { OperatingSystem } from '@/domain/OperatingSystem';
import { CodeRunner } from '@/infrastructure/CodeRunner';
import { expectThrowsAsync } from '@tests/unit/shared/Assertions/ExpectThrowsAsync';
describe('CodeRunner', () => {
describe('runCode', () => {
@@ -116,6 +117,17 @@ describe('CodeRunner', () => {
.filter((command) => expectedOrder.includes(command));
expect(expectedOrder).to.deep.equal(actualOrder);
});
it('throws with unsupported os', async () => {
// arrange
const unknownOs = OperatingSystem.Android;
const expectedError = `unsupported os: ${OperatingSystem[unknownOs]}`;
const context = new TestContext()
.withOs(unknownOs);
// act
const act = async () => { await context.runCode(); };
// assert
expectThrowsAsync(act, expectedError);
});
});
});