chore: maybe fixed the last of the broken tests 🤞

This commit is contained in:
blam
2020-10-20 18:21:42 +02:00
parent 37628a03f0
commit 3238651f8a
2 changed files with 26 additions and 13 deletions
+3 -1
View File
@@ -30,6 +30,7 @@
},
"dependencies": {
"@backstage/config": "^0.1.1-alpha.25",
"@backstage/test-utils": "^0.1.1-alpha.25",
"@backstage/theme": "^0.1.1-alpha.25",
"@material-ui/core": "^4.11.0",
"@material-ui/icons": "^4.9.1",
@@ -49,7 +50,8 @@
"@types/jest": "^26.0.7",
"@types/node": "^12.0.0",
"@types/zen-observable": "^0.8.0",
"cross-fetch": "^3.0.6"
"cross-fetch": "^3.0.6",
"msw": "^0.21.3"
},
"files": [
"dist"
@@ -19,8 +19,9 @@ import { DefaultAuthConnector } from './DefaultAuthConnector';
import MockOAuthApi from '../../apis/implementations/OAuthRequestApi/MockOAuthApi';
import * as loginPopup from '../loginPopup';
import { UrlPatternDiscovery } from '../../apis';
const anyFetch = fetch as any;
import { msw } from '@backstage/test-utils';
import { setupServer } from 'msw/node';
import { rest } from 'msw';
const defaultOptions = {
discoveryApi: UrlPatternDiscovery.compile('http://my-host/api/{{pluginId}}'),
@@ -39,19 +40,25 @@ const defaultOptions = {
};
describe('DefaultAuthConnector', () => {
const server = setupServer();
msw.setupDefaultHandlers(server);
afterEach(() => {
jest.resetAllMocks();
anyFetch.resetMocks();
});
it('should refresh a session', async () => {
anyFetch.mockResponseOnce(
JSON.stringify({
idToken: 'mock-id-token',
accessToken: 'mock-access-token',
scopes: 'a b c',
expiresInSeconds: '60',
}),
server.use(
rest.get('*', (_req, res, ctx) =>
res(
ctx.json({
idToken: 'mock-id-token',
accessToken: 'mock-access-token',
scopes: 'a b c',
expiresInSeconds: '60',
}),
),
),
);
const helper = new DefaultAuthConnector<any>(defaultOptions);
@@ -64,7 +71,11 @@ describe('DefaultAuthConnector', () => {
});
it('should handle failure to refresh session', async () => {
anyFetch.mockRejectOnce(new Error('Network NOPE'));
server.use(
rest.get('*', (_req, res, ctx) =>
res(ctx.status(500, 'Error: Network NOPE')),
),
);
const helper = new DefaultAuthConnector(defaultOptions);
await expect(helper.refreshSession()).rejects.toThrow(
@@ -73,7 +84,7 @@ describe('DefaultAuthConnector', () => {
});
it('should handle failure response when refreshing session', async () => {
anyFetch.mockResponseOnce({}, { status: 401, statusText: 'NOPE' });
server.use(rest.get('*', (_req, res, ctx) => res(ctx.status(401, 'NOPE'))));
const helper = new DefaultAuthConnector(defaultOptions);
await expect(helper.refreshSession()).rejects.toThrow(