accounts-frontend/packages/app/services/api/options.test.ts
2020-05-24 02:08:24 +03:00

47 lines
1.3 KiB
TypeScript

import expect from 'app/test/unexpected';
import sinon from 'sinon';
import request from 'app/services/request';
import options from './options';
describe('services/api/options', () => {
const expectedResp = {
foo: 'bar',
};
beforeEach(() => {
sinon
.stub(request, 'get')
.named('request.get')
.returns(
Promise.resolve({
originalResponse: new Response(),
...expectedResp,
}),
);
});
afterEach(() => {
(request.get as any).restore();
});
it('should request options without token', () =>
options.get().then((resp) => {
expect(resp, 'to satisfy', {
...expectedResp,
originalResponse: expect.it('to be a', Response),
});
expect(request.get, 'to have a call satisfying', ['/api/options', {}, { token: null }]);
}));
it('should cache options', () =>
// NOTE: this is bad practice, but we are relying on the state from
// the previous test
options.get().then((resp) => {
expect(resp, 'to satisfy', {
...expectedResp,
originalResponse: expect.it('to be a', Response),
});
expect(request.get, 'was not called');
}));
});