- Remove existing integration tests for hooks as they're redundant after this change. - Document the pattern in relevant documentation. - Introduce `useEnvironment` to increase testability. - Update components to inject dependencies rather than importing hooks directly.
29 lines
957 B
TypeScript
29 lines
957 B
TypeScript
import 'mocha';
|
|
import { expect } from 'chai';
|
|
import { useEnvironment } from '@/presentation/components/Shared/Hooks/UseEnvironment';
|
|
import { itEachAbsentObjectValue } from '@tests/unit/shared/TestCases/AbsentTests';
|
|
import { EnvironmentStub } from '@tests/unit/shared/Stubs/EnvironmentStub';
|
|
|
|
describe('UseEnvironment', () => {
|
|
describe('environment is absent', () => {
|
|
itEachAbsentObjectValue((absentValue) => {
|
|
// arrange
|
|
const expectedError = 'missing environment';
|
|
const environmentValue = absentValue;
|
|
// act
|
|
const act = () => useEnvironment(environmentValue);
|
|
// assert
|
|
expect(act).to.throw(expectedError);
|
|
});
|
|
});
|
|
|
|
it('returns expected environment', () => {
|
|
// arrange
|
|
const expectedEnvironment = new EnvironmentStub();
|
|
// act
|
|
const actualEnvironment = useEnvironment(expectedEnvironment);
|
|
// assert
|
|
expect(actualEnvironment).to.equal(expectedEnvironment);
|
|
});
|
|
});
|