accounts-frontend/src/services/authFlow/helpers.js

51 lines
967 B
JavaScript
Raw Normal View History

/**
* 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) {
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);
}