Skip to content

Commit abb306d

Browse files
Tsff 442 - testing med Storybook (#6112)
* Tsff 442 - testing med Storybook * Reverserer uønskende endringer * Tar bort unødvendige eslint-ignores
1 parent bc2c02f commit abb306d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+4561
-4477
lines changed

.dockerignore

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
*Dockerfile*
33
*docker-compose*
44
**/node_modules
5-
cypress
65
coverage
76
.nyc_output
87
packages

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
/.eslint_loader_cache/
1111
/.uglify_plugin_cache/
1212
.env
13-
cypress.env.json
1413
/coverage/
1514
*.iml
1615
*.log*

.storybook/preview.tsx

+49-3
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ import { MemoryRouter } from 'react-router-dom';
1010
// @ts-ignore
1111
const { VITE_LOCAL_STORYBOOK } = import.meta.env;
1212

13-
// NB: Viss omgåelse av service worker er aktivert i devtools og devtools er opna når ein laster storybook, så oppstår
14-
// evig loop på grunn av dette kallet.
1513
initialize({
1614
onUnhandledRequest: 'bypass',
1715
serviceWorker: {
@@ -34,7 +32,55 @@ const preview: Preview = {
3432
);
3533
},
3634
],
37-
loaders: [mswLoader],
35+
loaders: [
36+
async context => {
37+
await mswLoader(context);
38+
await waitForActivatedServiceWorker();
39+
},
40+
],
41+
};
42+
43+
const waitForActivatedServiceWorker = async () => {
44+
// Wait for the worker to be loaded
45+
const serviceWorker =
46+
navigator.serviceWorker.controller ||
47+
(await new Promise((resolve, reject) => {
48+
let triesLeft = 10;
49+
50+
const fn = () => {
51+
if (navigator.serviceWorker.controller) {
52+
resolve(navigator.serviceWorker.controller);
53+
} else {
54+
triesLeft -= 1;
55+
56+
if (triesLeft === 0) {
57+
reject(new Error('Timed out waiting for service worker'));
58+
} else {
59+
setTimeout(fn, 100);
60+
}
61+
}
62+
};
63+
64+
setTimeout(fn, 100);
65+
}));
66+
67+
if (!serviceWorker) {
68+
throw new Error('No service worker found');
69+
}
70+
71+
// Make sure the worker is actually ready to go
72+
if (serviceWorker.state !== 'activated') {
73+
await new Promise<void>(resolve => {
74+
const fn = (e: Event) => {
75+
if (e.target && 'state' in e.target && e.target.state === 'activated') {
76+
serviceWorker.removeEventListener('statechange', fn);
77+
resolve();
78+
}
79+
};
80+
81+
serviceWorker.addEventListener('statechange', fn);
82+
});
83+
}
3884
};
3985

4086
export default preview;

package.json

+13-13
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
"test:watch": "vitest --watch --silent=false",
1717
"test:watch:all": "vitest --watchAll",
1818
"test:coverage": "vitest --coverage --selectProjects test",
19+
"test-storybook": "test-storybook --url http://127.0.0.1:9001 --testTimeout=30_000",
1920
"ts-check": "tsc --pretty && tsc --pretty --project packages/v2/tsconfig.json",
2021
"lint": "eslint --cache packages --ext .ts,.tsx,.js,.jsx",
2122
"lint:fix": "eslint --fix --cache packages --ext .ts,.tsx,.js,.jsx",
@@ -66,17 +67,17 @@
6667
},
6768
"devDependencies": {
6869
"@sentry/cli": "2.32.1",
69-
"@storybook/addon-a11y": "^8.1.4",
70-
"@storybook/addon-actions": "^8.1.4",
71-
"@storybook/addon-docs": "^8.1.4",
72-
"@storybook/addon-essentials": "^8.1.4",
73-
"@storybook/addon-interactions": "^8.1.4",
74-
"@storybook/cli": "^8.1.4",
75-
"@storybook/react": "^8.1.4",
76-
"@storybook/react-vite": "^8.1.4",
77-
"@storybook/test": "^8.1.4",
78-
"@storybook/theming": "^8.1.4",
79-
"@testing-library/cypress": "^10.0.1",
70+
"@storybook/addon-a11y": "^8.1.5",
71+
"@storybook/addon-actions": "^8.1.5",
72+
"@storybook/addon-docs": "^8.1.5",
73+
"@storybook/addon-essentials": "^8.1.5",
74+
"@storybook/addon-interactions": "^8.1.5",
75+
"@storybook/cli": "^8.1.5",
76+
"@storybook/react": "^8.1.5",
77+
"@storybook/react-vite": "^8.1.5",
78+
"@storybook/test": "^8.1.5",
79+
"@storybook/test-runner": "^0.18.2",
80+
"@storybook/theming": "^8.1.5",
8081
"@testing-library/dom": "9.3.4",
8182
"@testing-library/jest-dom": "^6.4.5",
8283
"@testing-library/react": "14.3.1",
@@ -93,7 +94,6 @@
9394
"autoprefixer": "^10.4.19",
9495
"axios-mock-adapter": "1.22.0",
9596
"cross-env": "7.0.3",
96-
"cypress": "^13.10.0",
9797
"eslint": "8.57.0",
9898
"eslint-config-airbnb": "19.0.4",
9999
"eslint-config-prettier": "9.1.0",
@@ -112,7 +112,7 @@
112112
"postcss": "^8.4.38",
113113
"prettier": "3.2.5",
114114
"react-popper": "2.3.0",
115-
"storybook": "^8.1.4",
115+
"storybook": "^8.1.5",
116116
"stylelint": "16.6.1",
117117
"stylelint-config-standard": "^36.0.0",
118118
"stylelint-order": "6.0.4",

packages/fakta-etablert-tilsyn/cypress.config.ts

-17
This file was deleted.

packages/fakta-etablert-tilsyn/cypress/.eslintrc.json

-5
This file was deleted.

packages/fakta-etablert-tilsyn/cypress/e2e/EtablertTilsyn.cy.js

-26
This file was deleted.

packages/fakta-etablert-tilsyn/cypress/plugins/index.js

-19
This file was deleted.

packages/fakta-etablert-tilsyn/cypress/support/commands.js

-26
This file was deleted.

packages/fakta-etablert-tilsyn/cypress/support/e2e.js

-19
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
/* eslint-disable import/prefer-default-export */
22
import { http, HttpResponse } from 'msw';
3+
import { mockUrlPrepend } from './constants';
34
import mockedSykdom from './mocked-data/mockedSykdom';
45
import mockedTilsyn from './mocked-data/mockedTilsyn';
56

67
export const handlers = [
7-
http.get('http://localhost:8082/mock/tilsyn', () => HttpResponse.json(mockedTilsyn, { status: 200 })),
8-
http.get('http://localhost:8082/mock/sykdom', () => HttpResponse.json(mockedSykdom, { status: 200 })),
8+
http.get(`${mockUrlPrepend}/mock/tilsyn`, () => HttpResponse.json(mockedTilsyn, { status: 200 })),
9+
http.get(`${mockUrlPrepend}/mock/sykdom`, () => HttpResponse.json(mockedSykdom, { status: 200 })),
910

10-
http.get('http://localhost:8082/mock/sykdomInnleggelse', () => HttpResponse.json({ perioder: [] }, { status: 200 })),
11+
http.get(`${mockUrlPrepend}/mock/sykdomInnleggelse`, () => HttpResponse.json({ perioder: [] }, { status: 200 })),
1112
];
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const { DEV: IS_DEV, VITE_LOCAL_STORYBOOK } = import.meta.env;
2+
const mockUrlPrepend = VITE_LOCAL_STORYBOOK || IS_DEV ? '' : '/k9-sak-web';
3+
4+
export { mockUrlPrepend };

packages/fakta-etablert-tilsyn/package.json

+1-6
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,9 @@
77
"license": "MIT",
88
"private": true,
99
"scripts": {
10-
"dev": "vite serve",
11-
"cypress:headless": "cypress run",
12-
"test:e2e": "start-server-and-test dev http://localhost:5174 cypress:headless"
10+
"dev": "vite serve"
1311
},
1412
"devDependencies": {
15-
"@testing-library/cypress": "^10.0.1",
16-
"cypress": "^13.10.0",
17-
"eslint-plugin-cypress": "^2.15.2",
1813
"start-server-and-test": "^2.0.3",
1914
"vite": "^5.2.12",
2015
"vite-plugin-node-polyfills": "^0.22.0"

packages/fakta-etablert-tilsyn/src/dev/app.ts

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
/* eslint-disable no-console */
22
import '@navikt/ds-css';
33
import '@navikt/ft-plattform-komponenter/dist/style.css';
4+
import { mockUrlPrepend } from '../../mock/constants';
45
import renderers from '../util/renderers';
56

67
const data = {
78
readOnly: false,
89
endpoints: {
9-
tilsyn: 'http://localhost:8082/mock/tilsyn',
10-
sykdom: 'http://localhost:8082/mock/sykdom',
11-
sykdomInnleggelse: 'http://localhost:8082/mock/sykdomInnleggelse',
10+
tilsyn: `${mockUrlPrepend}/mock/tilsyn`,
11+
sykdom: `${mockUrlPrepend}/mock/sykdom`,
12+
sykdomInnleggelse: `${mockUrlPrepend}/mock/sykdomInnleggelse`,
1213
},
1314
onFinished: () => console.log('Aksjonspunkt løst'),
1415
beredskapMåVurderes: true,

0 commit comments

Comments
 (0)