@storybook/addon-vitest 10.1.0-alpha.8 → 10.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_browser-chunks/chunk-TJXI7EIW.js +61 -0
- package/dist/_node-chunks/chunk-4GXXLLOJ.js +61 -0
- package/dist/_node-chunks/chunk-AP5IIXAM.js +339 -0
- package/dist/_node-chunks/chunk-BGBUUVQU.js +45 -0
- package/dist/_node-chunks/chunk-EDXFFK3M.js +38 -0
- package/dist/_node-chunks/chunk-ERO7LVWY.js +71 -0
- package/dist/_node-chunks/{chunk-E2BHHDMM.js → chunk-J7YOLKRX.js} +15 -24
- package/dist/_node-chunks/chunk-KJQIXLJD.js +138 -0
- package/dist/_node-chunks/chunk-LZHFU3IY.js +44 -0
- package/dist/_node-chunks/chunk-NTUEKICW.js +158 -0
- package/dist/index.js +1 -5
- package/dist/manager.js +274 -491
- package/dist/node/coverage-reporter.js +319 -864
- package/dist/node/vitest.js +201 -456
- package/dist/postinstall.js +497 -1502
- package/dist/preset.js +166 -349
- package/dist/vitest-plugin/global-setup.js +50 -106
- package/dist/vitest-plugin/index.js +1163 -2378
- package/dist/vitest-plugin/setup-file.js +6 -12
- package/dist/vitest-plugin/test-utils.js +31 -71
- package/package.json +3 -7
- package/dist/_browser-chunks/chunk-CAYLRBRX.js +0 -77
- package/dist/_browser-chunks/chunk-JK72E6FR.js +0 -6
- package/dist/_node-chunks/chunk-37QBGOBL.js +0 -2574
- package/dist/_node-chunks/chunk-4EU2HFAD.js +0 -37
- package/dist/_node-chunks/chunk-6S4X4RWE.js +0 -247
- package/dist/_node-chunks/chunk-CZTTZYY4.js +0 -481
- package/dist/_node-chunks/chunk-KKAUWLBT.js +0 -98
- package/dist/_node-chunks/chunk-OYLANTK3.js +0 -105
- package/dist/_node-chunks/chunk-QAVSDLTJ.js +0 -50
|
@@ -1,31 +1,25 @@
|
|
|
1
1
|
import {
|
|
2
2
|
PANEL_ID
|
|
3
|
-
} from "../_browser-chunks/chunk-
|
|
4
|
-
import {
|
|
5
|
-
__name
|
|
6
|
-
} from "../_browser-chunks/chunk-JK72E6FR.js";
|
|
3
|
+
} from "../_browser-chunks/chunk-TJXI7EIW.js";
|
|
7
4
|
|
|
8
5
|
// src/vitest-plugin/setup-file.ts
|
|
9
6
|
import { afterEach, beforeAll, vi } from "vitest";
|
|
10
7
|
import { Channel } from "storybook/internal/channels";
|
|
11
8
|
var transport = { setHandler: vi.fn(), send: vi.fn() };
|
|
12
9
|
globalThis.__STORYBOOK_ADDONS_CHANNEL__ ??= new Channel({ transport });
|
|
13
|
-
var modifyErrorMessage =
|
|
14
|
-
|
|
10
|
+
var modifyErrorMessage = ({ task }) => {
|
|
11
|
+
let meta = task.meta;
|
|
15
12
|
if (task.type === "test" && task.result?.state === "fail" && meta.storyId && task.result.errors?.[0]) {
|
|
16
|
-
|
|
17
|
-
const storybookUrl = import.meta.env.__STORYBOOK_URL__;
|
|
18
|
-
const storyUrl = `${storybookUrl}/?path=/story/${meta.storyId}&addonPanel=${PANEL_ID}`;
|
|
13
|
+
let currentError = task.result.errors[0], storyUrl = `${import.meta.env.__STORYBOOK_URL__}/?path=/story/${meta.storyId}&addonPanel=${PANEL_ID}`;
|
|
19
14
|
currentError.message = `
|
|
20
15
|
\x1B[34mClick to debug the error directly in Storybook: ${storyUrl}\x1B[39m
|
|
21
16
|
|
|
22
17
|
${currentError.message}`;
|
|
23
18
|
}
|
|
24
|
-
}
|
|
19
|
+
};
|
|
25
20
|
beforeAll(() => {
|
|
26
|
-
if (globalThis.globalProjectAnnotations)
|
|
21
|
+
if (globalThis.globalProjectAnnotations)
|
|
27
22
|
return globalThis.globalProjectAnnotations.beforeAll();
|
|
28
|
-
}
|
|
29
23
|
});
|
|
30
24
|
afterEach(modifyErrorMessage);
|
|
31
25
|
export {
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
__name
|
|
3
|
-
} from "../_browser-chunks/chunk-JK72E6FR.js";
|
|
4
|
-
|
|
5
1
|
// src/vitest-plugin/test-utils.ts
|
|
6
2
|
import { getStoryChildren, isStory } from "storybook/internal/csf";
|
|
7
3
|
import { server } from "@vitest/browser/context";
|
|
@@ -13,95 +9,59 @@ import { MINIMAL_VIEWPORTS } from "storybook/viewport";
|
|
|
13
9
|
var DEFAULT_VIEWPORT_DIMENSIONS = {
|
|
14
10
|
width: 1200,
|
|
15
11
|
height: 900
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
var percentagePattern = /^(\d+(\.\d+)?%)$/;
|
|
19
|
-
var vwPattern = /^(\d+(\.\d+)?vw)$/;
|
|
20
|
-
var vhPattern = /^(\d+(\.\d+)?vh)$/;
|
|
21
|
-
var emRemPattern = /^(\d+)(em|rem)$/;
|
|
22
|
-
var parseDimension = /* @__PURE__ */ __name((value, dimension) => {
|
|
23
|
-
if (validPixelOrNumber.test(value)) {
|
|
12
|
+
}, validPixelOrNumber = /^\d+(px)?$/, percentagePattern = /^(\d+(\.\d+)?%)$/, vwPattern = /^(\d+(\.\d+)?vw)$/, vhPattern = /^(\d+(\.\d+)?vh)$/, emRemPattern = /^(\d+)(em|rem)$/, parseDimension = (value, dimension) => {
|
|
13
|
+
if (validPixelOrNumber.test(value))
|
|
24
14
|
return Number.parseInt(value, 10);
|
|
25
|
-
|
|
26
|
-
|
|
15
|
+
if (percentagePattern.test(value)) {
|
|
16
|
+
let percentageValue = parseFloat(value) / 100;
|
|
27
17
|
return Math.round(DEFAULT_VIEWPORT_DIMENSIONS[dimension] * percentageValue);
|
|
28
18
|
} else if (vwPattern.test(value)) {
|
|
29
|
-
|
|
19
|
+
let vwValue = parseFloat(value) / 100;
|
|
30
20
|
return Math.round(DEFAULT_VIEWPORT_DIMENSIONS.width * vwValue);
|
|
31
21
|
} else if (vhPattern.test(value)) {
|
|
32
|
-
|
|
22
|
+
let vhValue = parseFloat(value) / 100;
|
|
33
23
|
return Math.round(DEFAULT_VIEWPORT_DIMENSIONS.height * vhValue);
|
|
34
|
-
} else if (emRemPattern.test(value)) {
|
|
35
|
-
const emRemValue = Number.parseInt(value, 10);
|
|
36
|
-
return emRemValue * 16;
|
|
37
24
|
} else {
|
|
25
|
+
if (emRemPattern.test(value))
|
|
26
|
+
return Number.parseInt(value, 10) * 16;
|
|
38
27
|
throw new UnsupportedViewportDimensionError({ dimension, value });
|
|
39
28
|
}
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const viewportsGlobal = globals.viewport ?? {};
|
|
45
|
-
const isDisabled = viewportsParam.disable || viewportsParam.disabled;
|
|
46
|
-
if (viewportsGlobal.value && !isDisabled) {
|
|
47
|
-
defaultViewport = viewportsGlobal.value;
|
|
48
|
-
} else if (!isDisabled) {
|
|
49
|
-
defaultViewport = viewportsParam.defaultViewport;
|
|
50
|
-
}
|
|
51
|
-
const { page } = await import("@vitest/browser/context").catch(() => ({
|
|
29
|
+
}, setViewport = async (parameters = {}, globals = {}) => {
|
|
30
|
+
let defaultViewport, viewportsParam = parameters.viewport ?? {}, viewportsGlobal = globals.viewport ?? {}, isDisabled = viewportsParam.disable || viewportsParam.disabled;
|
|
31
|
+
viewportsGlobal.value && !isDisabled ? defaultViewport = viewportsGlobal.value : isDisabled || (defaultViewport = viewportsParam.defaultViewport);
|
|
32
|
+
let { page } = await import("@vitest/browser/context").catch(() => ({
|
|
52
33
|
page: null
|
|
53
34
|
}));
|
|
54
|
-
if (!page || !globalThis.__vitest_browser__)
|
|
35
|
+
if (!page || !globalThis.__vitest_browser__)
|
|
55
36
|
return;
|
|
56
|
-
|
|
57
|
-
const options = {
|
|
37
|
+
let options = {
|
|
58
38
|
...MINIMAL_VIEWPORTS,
|
|
59
39
|
...viewportsParam.viewports,
|
|
60
40
|
...viewportsParam.options
|
|
61
|
-
};
|
|
62
|
-
let viewportWidth = DEFAULT_VIEWPORT_DIMENSIONS.width;
|
|
63
|
-
let viewportHeight = DEFAULT_VIEWPORT_DIMENSIONS.height;
|
|
41
|
+
}, viewportWidth = DEFAULT_VIEWPORT_DIMENSIONS.width, viewportHeight = DEFAULT_VIEWPORT_DIMENSIONS.height;
|
|
64
42
|
if (defaultViewport && defaultViewport in options) {
|
|
65
|
-
|
|
43
|
+
let { styles } = options[defaultViewport];
|
|
66
44
|
if (styles?.width && styles?.height) {
|
|
67
|
-
|
|
68
|
-
viewportWidth = parseDimension(width, "width");
|
|
69
|
-
viewportHeight = parseDimension(height, "height");
|
|
45
|
+
let { width, height } = styles;
|
|
46
|
+
viewportWidth = parseDimension(width, "width"), viewportHeight = parseDimension(height, "height");
|
|
70
47
|
}
|
|
71
48
|
}
|
|
72
49
|
await page.viewport(viewportWidth, viewportHeight);
|
|
73
|
-
}
|
|
50
|
+
};
|
|
74
51
|
|
|
75
52
|
// src/vitest-plugin/test-utils.ts
|
|
76
|
-
var { getInitialGlobals } = server.commands
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
storyAnnotations,
|
|
89
|
-
annotations.meta,
|
|
90
|
-
{ initialGlobals: await getInitialGlobals?.() ?? {} },
|
|
91
|
-
annotations.preview ?? globalThis.globalProjectAnnotations,
|
|
92
|
-
exportName
|
|
93
|
-
);
|
|
94
|
-
if (composedStory === void 0 || skipTags?.some((tag) => composedStory.tags.includes(tag))) {
|
|
95
|
-
context.skip();
|
|
96
|
-
}
|
|
97
|
-
context.story = composedStory;
|
|
98
|
-
const _task = context.task;
|
|
99
|
-
_task.meta.storyId = storyId;
|
|
100
|
-
await setViewport(composedStory.parameters, composedStory.globals);
|
|
101
|
-
await composedStory.run(void 0);
|
|
102
|
-
_task.meta.reports = composedStory.reporting.reports;
|
|
103
|
-
};
|
|
104
|
-
}, "testStory");
|
|
53
|
+
var { getInitialGlobals } = server.commands, convertToFilePath = (url) => url.replace(/^file:\/\//, "").replace(/^\/+([a-zA-Z]:)/, "$1").replace(/%20/g, " "), testStory = (exportName, story, meta, skipTags, storyId, testName) => async (context) => {
|
|
54
|
+
let annotations = getCsfFactoryAnnotations(story, meta), test = isStory(story) && testName ? getStoryChildren(story).find((child) => child.input.name === testName) : void 0, storyAnnotations = test ? test.input : annotations.story, composedStory = composeStory(
|
|
55
|
+
storyAnnotations,
|
|
56
|
+
annotations.meta,
|
|
57
|
+
{ initialGlobals: await getInitialGlobals?.() ?? {} },
|
|
58
|
+
annotations.preview ?? globalThis.globalProjectAnnotations,
|
|
59
|
+
exportName
|
|
60
|
+
);
|
|
61
|
+
(composedStory === void 0 || skipTags?.some((tag) => composedStory.tags.includes(tag))) && context.skip(), context.story = composedStory;
|
|
62
|
+
let _task = context.task;
|
|
63
|
+
_task.meta.storyId = storyId, await setViewport(composedStory.parameters, composedStory.globals), await composedStory.run(void 0), _task.meta.reports = composedStory.reporting.reports;
|
|
64
|
+
};
|
|
105
65
|
export {
|
|
106
66
|
convertToFilePath,
|
|
107
67
|
testStory
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/addon-vitest",
|
|
3
|
-
"version": "10.1.0-
|
|
3
|
+
"version": "10.1.0-beta.0",
|
|
4
4
|
"description": "Storybook Vitest addon: Blazing fast component testing using stories",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook",
|
|
@@ -73,9 +73,7 @@
|
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
75
|
"@storybook/global": "^5.0.0",
|
|
76
|
-
"@storybook/icons": "^
|
|
77
|
-
"prompts": "^2.4.0",
|
|
78
|
-
"ts-dedent": "^2.2.0"
|
|
76
|
+
"@storybook/icons": "^2.0.0"
|
|
79
77
|
},
|
|
80
78
|
"devDependencies": {
|
|
81
79
|
"@types/istanbul-lib-report": "^3.0.3",
|
|
@@ -84,10 +82,8 @@
|
|
|
84
82
|
"@types/semver": "^7",
|
|
85
83
|
"@vitest/browser-playwright": "^4.0.1",
|
|
86
84
|
"@vitest/runner": "^4.0.1",
|
|
87
|
-
"boxen": "^8.0.1",
|
|
88
85
|
"empathic": "^2.0.0",
|
|
89
86
|
"es-toolkit": "^1.36.0",
|
|
90
|
-
"execa": "^8.0.1",
|
|
91
87
|
"istanbul-lib-report": "^3.0.1",
|
|
92
88
|
"micromatch": "^4.0.8",
|
|
93
89
|
"pathe": "^1.1.2",
|
|
@@ -107,7 +103,7 @@
|
|
|
107
103
|
"@vitest/browser": "^3.0.0 || ^4.0.0",
|
|
108
104
|
"@vitest/browser-playwright": "^4.0.0",
|
|
109
105
|
"@vitest/runner": "^3.0.0 || ^4.0.0",
|
|
110
|
-
"storybook": "^10.1.0-
|
|
106
|
+
"storybook": "^10.1.0-beta.0",
|
|
111
107
|
"vitest": "^3.0.0 || ^4.0.0"
|
|
112
108
|
},
|
|
113
109
|
"peerDependenciesMeta": {
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
// ../../core/src/component-testing/constants.ts
|
|
2
|
-
var ADDON_ID = "storybook/interactions";
|
|
3
|
-
var PANEL_ID = `${ADDON_ID}/panel`;
|
|
4
|
-
var DOCUMENTATION_LINK = "writing-tests/integrations/vitest-addon";
|
|
5
|
-
var DOCUMENTATION_DISCREPANCY_LINK = `${DOCUMENTATION_LINK}#what-happens-when-there-are-different-test-results-in-multiple-environments`;
|
|
6
|
-
|
|
7
|
-
// ../a11y/src/constants.ts
|
|
8
|
-
var ADDON_ID2 = "storybook/a11y";
|
|
9
|
-
var PANEL_ID2 = `${ADDON_ID2}/panel`;
|
|
10
|
-
var UI_STATE_ID = `${ADDON_ID2}/ui`;
|
|
11
|
-
var RESULT = `${ADDON_ID2}/result`;
|
|
12
|
-
var REQUEST = `${ADDON_ID2}/request`;
|
|
13
|
-
var RUNNING = `${ADDON_ID2}/running`;
|
|
14
|
-
var ERROR = `${ADDON_ID2}/error`;
|
|
15
|
-
var MANUAL = `${ADDON_ID2}/manual`;
|
|
16
|
-
var SELECT = `${ADDON_ID2}/select`;
|
|
17
|
-
var DOCUMENTATION_LINK2 = "writing-tests/accessibility-testing";
|
|
18
|
-
var DOCUMENTATION_DISCREPANCY_LINK2 = `${DOCUMENTATION_LINK2}#why-are-my-tests-failing-in-different-environments`;
|
|
19
|
-
|
|
20
|
-
// src/constants.ts
|
|
21
|
-
var ADDON_ID3 = "storybook/test";
|
|
22
|
-
var TEST_PROVIDER_ID = `${ADDON_ID3}/test-provider`;
|
|
23
|
-
var DOCUMENTATION_LINK3 = "writing-tests/integrations/vitest-addon";
|
|
24
|
-
var DOCUMENTATION_FATAL_ERROR_LINK = `${DOCUMENTATION_LINK3}#what-happens-if-vitest-itself-has-an-error`;
|
|
25
|
-
var storeOptions = {
|
|
26
|
-
id: ADDON_ID3,
|
|
27
|
-
initialState: {
|
|
28
|
-
config: {
|
|
29
|
-
coverage: false,
|
|
30
|
-
a11y: false
|
|
31
|
-
},
|
|
32
|
-
watching: false,
|
|
33
|
-
cancelling: false,
|
|
34
|
-
fatalError: void 0,
|
|
35
|
-
indexUrl: void 0,
|
|
36
|
-
previewAnnotations: [],
|
|
37
|
-
currentRun: {
|
|
38
|
-
triggeredBy: void 0,
|
|
39
|
-
config: {
|
|
40
|
-
coverage: false,
|
|
41
|
-
a11y: false
|
|
42
|
-
},
|
|
43
|
-
componentTestCount: {
|
|
44
|
-
success: 0,
|
|
45
|
-
error: 0
|
|
46
|
-
},
|
|
47
|
-
a11yCount: {
|
|
48
|
-
success: 0,
|
|
49
|
-
warning: 0,
|
|
50
|
-
error: 0
|
|
51
|
-
},
|
|
52
|
-
storyIds: void 0,
|
|
53
|
-
totalTestCount: void 0,
|
|
54
|
-
startedAt: void 0,
|
|
55
|
-
finishedAt: void 0,
|
|
56
|
-
unhandledErrors: [],
|
|
57
|
-
coverageSummary: void 0
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
var FULL_RUN_TRIGGERS = ["global", "run-all"];
|
|
62
|
-
var STORE_CHANNEL_EVENT_NAME = `UNIVERSAL_STORE:${storeOptions.id}`;
|
|
63
|
-
var STATUS_TYPE_ID_COMPONENT_TEST = "storybook/component-test";
|
|
64
|
-
var STATUS_TYPE_ID_A11Y = "storybook/a11y";
|
|
65
|
-
|
|
66
|
-
export {
|
|
67
|
-
PANEL_ID,
|
|
68
|
-
ADDON_ID2 as ADDON_ID,
|
|
69
|
-
PANEL_ID2,
|
|
70
|
-
ADDON_ID3 as ADDON_ID2,
|
|
71
|
-
TEST_PROVIDER_ID,
|
|
72
|
-
DOCUMENTATION_FATAL_ERROR_LINK,
|
|
73
|
-
storeOptions,
|
|
74
|
-
FULL_RUN_TRIGGERS,
|
|
75
|
-
STATUS_TYPE_ID_COMPONENT_TEST,
|
|
76
|
-
STATUS_TYPE_ID_A11Y
|
|
77
|
-
};
|