@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.
@@ -1,31 +1,25 @@
1
1
  import {
2
2
  PANEL_ID
3
- } from "../_browser-chunks/chunk-CAYLRBRX.js";
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 = /* @__PURE__ */ __name(({ task }) => {
14
- const meta = task.meta;
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
- const currentError = task.result.errors[0];
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
- }, "modifyErrorMessage");
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
- var validPixelOrNumber = /^\d+(px)?$/;
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
- } else if (percentagePattern.test(value)) {
26
- const percentageValue = parseFloat(value) / 100;
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
- const vwValue = parseFloat(value) / 100;
19
+ let vwValue = parseFloat(value) / 100;
30
20
  return Math.round(DEFAULT_VIEWPORT_DIMENSIONS.width * vwValue);
31
21
  } else if (vhPattern.test(value)) {
32
- const vhValue = parseFloat(value) / 100;
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
- }, "parseDimension");
41
- var setViewport = /* @__PURE__ */ __name(async (parameters = {}, globals = {}) => {
42
- let defaultViewport;
43
- const viewportsParam = parameters.viewport ?? {};
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
- const { styles } = options[defaultViewport];
43
+ let { styles } = options[defaultViewport];
66
44
  if (styles?.width && styles?.height) {
67
- const { width, height } = styles;
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
- }, "setViewport");
50
+ };
74
51
 
75
52
  // src/vitest-plugin/test-utils.ts
76
- var { getInitialGlobals } = server.commands;
77
- var convertToFilePath = /* @__PURE__ */ __name((url) => {
78
- const path = url.replace(/^file:\/\//, "");
79
- const normalizedPath = path.replace(/^\/+([a-zA-Z]:)/, "$1");
80
- return normalizedPath.replace(/%20/g, " ");
81
- }, "convertToFilePath");
82
- var testStory = /* @__PURE__ */ __name((exportName, story, meta, skipTags, storyId, testName) => {
83
- return async (context) => {
84
- const annotations = getCsfFactoryAnnotations(story, meta);
85
- const test = isStory(story) && testName ? getStoryChildren(story).find((child) => child.input.name === testName) : void 0;
86
- const storyAnnotations = test ? test.input : annotations.story;
87
- const composedStory = composeStory(
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-alpha.8",
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": "^1.6.0",
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-alpha.8",
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
- };
@@ -1,6 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
- export {
5
- __name
6
- };