1
1
/* eslint-disable @typescript-eslint/naming-convention */
2
2
3
3
/* eslint-disable no-underscore-dangle */
4
- import { afterAll , vi } from 'vitest' ;
5
- import type { RunnerTask , TaskMeta } from 'vitest' ;
4
+ import { afterEach , vi } from 'vitest' ;
5
+ import type { RunnerTask } from 'vitest' ;
6
6
7
7
import { Channel } from 'storybook/internal/channels' ;
8
8
@@ -13,28 +13,26 @@ declare global {
13
13
var __STORYBOOK_ADDONS_CHANNEL__ : Channel ;
14
14
}
15
15
16
- type ExtendedMeta = TaskMeta & { storyId : string ; hasPlayFunction : boolean } ;
16
+ export type Task = Partial < RunnerTask > & {
17
+ meta : Record < string , any > ;
18
+ } ;
17
19
18
20
const transport = { setHandler : vi . fn ( ) , send : vi . fn ( ) } ;
19
- globalThis . __STORYBOOK_ADDONS_CHANNEL__ = new Channel ( { transport } ) ;
21
+ globalThis . __STORYBOOK_ADDONS_CHANNEL__ ?? = new Channel ( { transport } ) ;
20
22
21
- // The purpose of this set up file is to modify the error message of failed tests
22
- // and inject a link to the story in Storybook
23
- const modifyErrorMessage = ( currentTask : RunnerTask ) => {
24
- const meta = currentTask . meta as ExtendedMeta ;
23
+ export const modifyErrorMessage = ( { task } : { task : Task } ) => {
24
+ const meta = task . meta ;
25
25
if (
26
- currentTask . type === 'test' &&
27
- currentTask . result ?. state === 'fail' &&
26
+ task . type === 'test' &&
27
+ task . result ?. state === 'fail' &&
28
28
meta . storyId &&
29
- currentTask . result . errors ?. [ 0 ]
29
+ task . result . errors ?. [ 0 ]
30
30
) {
31
- const currentError = currentTask . result . errors [ 0 ] ;
31
+ const currentError = task . result . errors [ 0 ] ;
32
32
const storybookUrl = import . meta. env . __STORYBOOK_URL__ ;
33
33
const storyUrl = `${ storybookUrl } /?path=/story/${ meta . storyId } &addonPanel=storybook/interactions/panel` ;
34
34
currentError . message = `\n\x1B[34mClick to debug the error directly in Storybook: ${ storyUrl } \x1B[39m\n\n${ currentError . message } ` ;
35
35
}
36
36
} ;
37
37
38
- afterAll ( ( suite ) => {
39
- suite . tasks . forEach ( modifyErrorMessage ) ;
40
- } ) ;
38
+ afterEach ( modifyErrorMessage ) ;
0 commit comments