accounts-frontend/packages/app/services/authFlow/helpers.ts

55 lines
1007 B
TypeScript

/**
* A helpers for testing states in isolation from AuthFlow
*/
import sinon from 'sinon';
export function bootstrap() {
const context = {
getState: sinon.stub(),
run() {},
setState() {},
getRequest: sinon.stub(),
navigate() {},
};
const mock = sinon.mock(context);
mock.expects('run').never();
mock.expects('navigate').never();
mock.expects('setState').never();
return { context, mock };
}
export function expectState(mock, state) {
return mock
.expects('setState')
.once()
.withExactArgs(sinon.match.instanceOf(state));
}
export function expectNavigate(
mock,
route,
options: { [key: string]: any } | void,
) {
if (options) {
return mock
.expects('navigate')
.once()
.withExactArgs(route, sinon.match(options));
}
return mock
.expects('navigate')
.once()
.withExactArgs(route);
}
export function expectRun(mock, ...args) {
return mock
.expects('run')
.once()
.withExactArgs(...args);
}