mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-11-30 02:32:58 +05:30
#355: fix authentication.test.js
This commit is contained in:
parent
d64c2a728d
commit
22ae85c9c6
@ -92,7 +92,7 @@ export async function validateToken(id: number, token: string, refreshToken: ?st
|
||||
try {
|
||||
user = await getInfoEndpoint(id, token);
|
||||
} catch (resp) {
|
||||
const token = await handleTokenError(resp, refreshToken);
|
||||
token = await handleTokenError(resp, refreshToken);
|
||||
user = await getInfoEndpoint(id, token); // TODO: replace with recursive call
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* eslint-disable camelcase */
|
||||
import expect from 'unexpected';
|
||||
import sinon from 'sinon';
|
||||
|
||||
@ -6,6 +7,28 @@ import * as authentication from 'services/api/authentication';
|
||||
import * as accounts from 'services/api/accounts';
|
||||
|
||||
describe('authentication api', () => {
|
||||
let server;
|
||||
|
||||
beforeEach(() => {
|
||||
server = sinon.createFakeServer({
|
||||
autoRespond: true
|
||||
});
|
||||
|
||||
['get', 'post'].forEach((method) => {
|
||||
server[method] = (url, resp = {}, status = 200, headers = {}) => {
|
||||
server.respondWith(method, url, [
|
||||
status,
|
||||
{ 'Content-Type': 'application/json', ...headers },
|
||||
JSON.stringify(resp)
|
||||
]);
|
||||
};
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
server.restore();
|
||||
});
|
||||
|
||||
describe('#login', () => {
|
||||
const params = {
|
||||
login: 'foo',
|
||||
@ -113,15 +136,25 @@ describe('authentication api', () => {
|
||||
authentication.requestToken.restore();
|
||||
});
|
||||
|
||||
it('resolves with new token and user object', () =>
|
||||
expect(authentication.validateToken(...validateTokenArgs),
|
||||
it('resolves with new token and user object', async () => {
|
||||
server.post('/api/authentication/refresh-token', {
|
||||
access_token: newToken,
|
||||
refresh_token: validRefreshToken,
|
||||
success: true,
|
||||
expires_in: 50000
|
||||
});
|
||||
|
||||
|
||||
await expect(authentication.validateToken(...validateTokenArgs),
|
||||
'to be fulfilled with', {token: newToken, refreshToken: validRefreshToken, user}
|
||||
)
|
||||
);
|
||||
);
|
||||
|
||||
expect(server.requests[0].requestBody, 'to equal', `refresh_token=${validRefreshToken}`);
|
||||
});
|
||||
|
||||
it('rejects if token request failed', () => {
|
||||
const error = 'Something wrong';
|
||||
authentication.requestToken.returns(Promise.reject(error));
|
||||
const error = {error: 'Unexpected error example'};
|
||||
server.post('/api/authentication/refresh-token', error, 500);
|
||||
|
||||
return expect(authentication.validateToken(...validateTokenArgs),
|
||||
'to be rejected with', error
|
||||
@ -140,25 +173,28 @@ describe('authentication api', () => {
|
||||
const newToken = 'baz';
|
||||
|
||||
beforeEach(() => {
|
||||
sinon.stub(authentication, 'requestToken');
|
||||
|
||||
accounts.getInfo.onCall(0).returns(Promise.reject(expiredResponse));
|
||||
authentication.requestToken.returns(Promise.resolve(newToken));
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
authentication.requestToken.restore();
|
||||
});
|
||||
it('resolves with new token and user object', async () => {
|
||||
server.post('/api/authentication/refresh-token', {
|
||||
access_token: newToken,
|
||||
refresh_token: validRefreshToken,
|
||||
success: true,
|
||||
expires_in: 50000
|
||||
});
|
||||
|
||||
it('resolves with new token and user object', () =>
|
||||
expect(authentication.validateToken(...validateTokenArgs),
|
||||
|
||||
await expect(authentication.validateToken(...validateTokenArgs),
|
||||
'to be fulfilled with', {token: newToken, refreshToken: validRefreshToken, user}
|
||||
)
|
||||
);
|
||||
);
|
||||
|
||||
expect(server.requests[0].requestBody, 'to equal', `refresh_token=${validRefreshToken}`);
|
||||
});
|
||||
|
||||
it('rejects if token request failed', () => {
|
||||
const error = 'Something wrong';
|
||||
authentication.requestToken.returns(Promise.reject(error));
|
||||
const error = {error: 'Unexpected error example'};
|
||||
server.post('/api/authentication/refresh-token', error, 500);
|
||||
|
||||
return expect(authentication.validateToken(...validateTokenArgs),
|
||||
'to be rejected with', error
|
||||
|
Loading…
Reference in New Issue
Block a user