@storybook/addon-vitest 10.0.0-rc.0 → 10.0.0-rc.2

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,24 +1,24 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  ADDON_ID
14
- } from "./chunk-7NYAMOQN.js";
14
+ } from "./chunk-NIFIULOU.js";
15
15
  import {
16
16
  require_picocolors
17
- } from "./chunk-PCE2HVIF.js";
17
+ } from "./chunk-KLZUEOJU.js";
18
18
  import {
19
19
  __name,
20
20
  __toESM
21
- } from "./chunk-NHCTXARL.js";
21
+ } from "./chunk-U5S4GJRR.js";
22
22
 
23
23
  // src/logger.ts
24
24
  var import_picocolors = __toESM(require_picocolors(), 1);
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,7 +12,7 @@ var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
12
12
  import {
13
13
  __commonJS,
14
14
  __name
15
- } from "./chunk-NHCTXARL.js";
15
+ } from "./chunk-U5S4GJRR.js";
16
16
 
17
17
  // ../../node_modules/semver/internal/constants.js
18
18
  var require_constants = __commonJS({
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,7 +12,7 @@ var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
12
12
  import {
13
13
  __commonJS,
14
14
  __name
15
- } from "./chunk-NHCTXARL.js";
15
+ } from "./chunk-U5S4GJRR.js";
16
16
 
17
17
  // ../../node_modules/picocolors/picocolors.js
18
18
  var require_picocolors = __commonJS({
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,13 +12,13 @@ var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
12
12
  import {
13
13
  dirname,
14
14
  join
15
- } from "./chunk-AWEIVCJU.js";
15
+ } from "./chunk-MJYEU6ZQ.js";
16
16
  import {
17
17
  __commonJS,
18
18
  __name,
19
19
  __require,
20
20
  __toESM
21
- } from "./chunk-NHCTXARL.js";
21
+ } from "./chunk-U5S4GJRR.js";
22
22
 
23
23
  // ../../node_modules/isexe/windows.js
24
24
  var require_windows = __commonJS({
@@ -1,17 +1,17 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  __name
14
- } from "./chunk-NHCTXARL.js";
14
+ } from "./chunk-U5S4GJRR.js";
15
15
 
16
16
  // ../../node_modules/pathe/dist/shared/pathe.ff20891b.mjs
17
17
  var _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,17 +1,17 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  __name
14
- } from "./chunk-NHCTXARL.js";
14
+ } from "./chunk-U5S4GJRR.js";
15
15
 
16
16
  // src/utils.ts
17
17
  function getAddonNames(mainConfig) {
@@ -1,23 +1,23 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  require_gte
14
- } from "../_node-chunks/chunk-4PIRGNDJ.js";
14
+ } from "../_node-chunks/chunk-BFA4A4AX.js";
15
15
  import {
16
16
  __commonJS,
17
17
  __name,
18
18
  __require,
19
19
  __toESM
20
- } from "../_node-chunks/chunk-NHCTXARL.js";
20
+ } from "../_node-chunks/chunk-U5S4GJRR.js";
21
21
 
22
22
  // ../../node_modules/istanbul-lib-report/node_modules/make-dir/index.js
23
23
  var require_make_dir = __commonJS({
@@ -1,38 +1,38 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  log
14
- } from "../_node-chunks/chunk-KBKL6DHV.js";
14
+ } from "../_node-chunks/chunk-2MBZJ6X7.js";
15
15
  import {
16
16
  any,
17
17
  errorToErrorLike
18
- } from "../_node-chunks/chunk-QI2RNT74.js";
18
+ } from "../_node-chunks/chunk-Z7IZASA4.js";
19
19
  import {
20
20
  ADDON_ID,
21
21
  COVERAGE_DIRECTORY,
22
22
  STATUS_TYPE_ID_A11Y,
23
23
  STATUS_TYPE_ID_COMPONENT_TEST,
24
24
  storeOptions
25
- } from "../_node-chunks/chunk-7NYAMOQN.js";
26
- import "../_node-chunks/chunk-PCE2HVIF.js";
25
+ } from "../_node-chunks/chunk-NIFIULOU.js";
26
+ import "../_node-chunks/chunk-KLZUEOJU.js";
27
27
  import {
28
28
  dirname,
29
29
  join,
30
30
  normalize,
31
31
  path
32
- } from "../_node-chunks/chunk-AWEIVCJU.js";
32
+ } from "../_node-chunks/chunk-MJYEU6ZQ.js";
33
33
  import {
34
34
  __name
35
- } from "../_node-chunks/chunk-NHCTXARL.js";
35
+ } from "../_node-chunks/chunk-U5S4GJRR.js";
36
36
 
37
37
  // src/node/vitest.ts
38
38
  import process2 from "node:process";
@@ -234,7 +234,7 @@ var StorybookReporter = class {
234
234
  this.ctx.state.pathsSet.clear();
235
235
  this.ctx.state.idMap.clear();
236
236
  this.ctx.state.errorsSet.clear();
237
- this.ctx.state.processTimeoutCauses.clear();
237
+ this.ctx.state.processTimeoutCauses?.clear();
238
238
  }
239
239
  };
240
240
 
@@ -350,12 +350,15 @@ Please install the @vitest/${coveragePackage} package to collect coverage
350
350
  this.vitest?.setGlobalTestNamePattern("");
351
351
  }
352
352
  updateLastChanged(filepath) {
353
- const projects = this.vitest.getModuleProjects(filepath);
354
- projects.forEach(({ server, browser }) => {
353
+ this.vitest.projects.forEach(({ browser, vite, server }) => {
355
354
  if (server) {
356
355
  const serverMods = server.moduleGraph.getModulesByFile(filepath);
357
356
  serverMods?.forEach((mod) => server.moduleGraph.invalidateModule(mod));
358
357
  }
358
+ if (vite) {
359
+ const serverMods = vite.moduleGraph.getModulesByFile(filepath);
360
+ serverMods?.forEach((mod) => vite.moduleGraph.invalidateModule(mod));
361
+ }
359
362
  if (browser) {
360
363
  const browserMods = browser.vite.moduleGraph.getModulesByFile(filepath);
361
364
  browserMods?.forEach((mod) => browser.vite.moduleGraph.invalidateModule(mod));
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,22 +12,22 @@ var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
12
12
  import {
13
13
  execa,
14
14
  resolvePackageDir
15
- } from "./_node-chunks/chunk-ZZ4PTERA.js";
15
+ } from "./_node-chunks/chunk-LE4ECTDM.js";
16
16
  import {
17
17
  any,
18
18
  getAddonNames,
19
19
  up
20
- } from "./_node-chunks/chunk-QI2RNT74.js";
20
+ } from "./_node-chunks/chunk-Z7IZASA4.js";
21
21
  import {
22
22
  DOCUMENTATION_LINK,
23
23
  SUPPORTED_FRAMEWORKS
24
- } from "./_node-chunks/chunk-7NYAMOQN.js";
24
+ } from "./_node-chunks/chunk-NIFIULOU.js";
25
25
  import {
26
26
  dirname,
27
27
  join,
28
28
  relative,
29
29
  resolve
30
- } from "./_node-chunks/chunk-AWEIVCJU.js";
30
+ } from "./_node-chunks/chunk-MJYEU6ZQ.js";
31
31
  import {
32
32
  require_compare,
33
33
  require_constants,
@@ -37,12 +37,12 @@ import {
37
37
  require_parse_options,
38
38
  require_re,
39
39
  require_semver
40
- } from "./_node-chunks/chunk-4PIRGNDJ.js";
40
+ } from "./_node-chunks/chunk-BFA4A4AX.js";
41
41
  import {
42
42
  __commonJS,
43
43
  __name,
44
44
  __toESM
45
- } from "./_node-chunks/chunk-NHCTXARL.js";
45
+ } from "./_node-chunks/chunk-U5S4GJRR.js";
46
46
 
47
47
  // ../../node_modules/semver/functions/parse.js
48
48
  var require_parse = __commonJS({
@@ -1791,12 +1791,18 @@ async function postInstall(options) {
1791
1791
  const packageManager = JsPackageManagerFactory.getPackageManager({
1792
1792
  force: options.packageManager
1793
1793
  });
1794
- const info2 = await getStorybookInfo(options);
1795
- const allDeps = packageManager.getAllDependencies();
1796
- const dependencies = ["vitest", "@vitest/browser", "playwright"].filter((p) => !allDeps[p]);
1797
1794
  const vitestVersionSpecifier = await packageManager.getInstalledVersion("vitest");
1798
1795
  const coercedVitestVersion = vitestVersionSpecifier ? (0, import_semver.coerce)(vitestVersionSpecifier) : null;
1799
- const isVitest3_2OrNewer = vitestVersionSpecifier ? (0, import_semver.satisfies)(vitestVersionSpecifier, ">=3.2.0") : true;
1796
+ const isVitest3_2To4 = vitestVersionSpecifier ? (0, import_semver.satisfies)(vitestVersionSpecifier, ">=3.2.0 <4.0.0") : false;
1797
+ const isVitest4OrNewer = vitestVersionSpecifier ? (0, import_semver.satisfies)(vitestVersionSpecifier, ">=4.0.0") : true;
1798
+ const info2 = await getStorybookInfo(options);
1799
+ const allDeps = packageManager.getAllDependencies();
1800
+ const dependencies = [
1801
+ "vitest",
1802
+ "playwright",
1803
+ isVitest4OrNewer ? "@vitest/browser-playwright" : "@vitest/browser"
1804
+ ];
1805
+ const uniqueDependencies = dependencies.filter((p) => !allDeps[p]);
1800
1806
  const mainJsPath = getInterpretedFile(resolve(options.configDir, "main"));
1801
1807
  const config = await readConfig(mainJsPath);
1802
1808
  const hasCustomWebpackConfig = !!config.getFieldNode(["webpackFinal"]);
@@ -1930,7 +1936,7 @@ async function postInstall(options) {
1930
1936
  );
1931
1937
  try {
1932
1938
  const storybookVersion = await packageManager.getInstalledVersion("storybook");
1933
- dependencies.push(`@storybook/nextjs-vite@^${storybookVersion}`);
1939
+ uniqueDependencies.push(`@storybook/nextjs-vite@^${storybookVersion}`);
1934
1940
  } catch (e) {
1935
1941
  console.error("Failed to install @storybook/nextjs-vite. Please install it manually");
1936
1942
  }
@@ -1947,9 +1953,9 @@ async function postInstall(options) {
1947
1953
  Read more about Vitest coverage providers at https://vitest.dev/guide/coverage.html#coverage-providers
1948
1954
  `
1949
1955
  );
1950
- dependencies.push(`@vitest/coverage-v8`);
1956
+ uniqueDependencies.push(`@vitest/coverage-v8`);
1951
1957
  }
1952
- const versionedDependencies = dependencies.map((p) => {
1958
+ const versionedDependencies = uniqueDependencies.map((p) => {
1953
1959
  if (p.includes("vitest")) {
1954
1960
  return vitestVersionSpecifier ? `${p}@${vitestVersionSpecifier}` : p;
1955
1961
  }
@@ -2019,28 +2025,29 @@ async function postInstall(options) {
2019
2025
  setProjectAnnotations([${projectAnnotations.join(", ")}]);
2020
2026
  `
2021
2027
  );
2022
- const vitestWorkspaceFile = findFile("vitest.workspace", [".ts", ".js", ".json"]) || findFile("vitest.projects", [".ts", ".js", ".json"]);
2028
+ const vitestWorkspaceFile = findFile("vitest.workspace", [".ts", ".js", ".json"]);
2023
2029
  const viteConfigFile = findFile("vite.config");
2024
2030
  const vitestConfigFile = findFile("vitest.config");
2025
2031
  const vitestShimFile = findFile("vitest.shims.d");
2026
2032
  const rootConfig = vitestConfigFile || viteConfigFile;
2027
- const browserConfig = `{
2028
- enabled: true,
2029
- headless: true,
2030
- provider: 'playwright',
2031
- instances: [{ browser: 'chromium' }]
2032
- }`;
2033
2033
  if (fileExtension === "ts" && !vitestShimFile) {
2034
2034
  await writeFile(
2035
2035
  "vitest.shims.d.ts",
2036
- '/// <reference types="@vitest/browser/providers/playwright" />'
2036
+ isVitest4OrNewer ? '/// <reference types="@vitest/browser-playwright" />' : '/// <reference types="@vitest/browser/providers/playwright" />'
2037
2037
  );
2038
2038
  }
2039
+ const getTemplateName = /* @__PURE__ */ __name(() => {
2040
+ if (isVitest4OrNewer) {
2041
+ return "vitest.config.4.template.ts";
2042
+ } else if (isVitest3_2To4) {
2043
+ return "vitest.config.3.2.template.ts";
2044
+ }
2045
+ return "vitest.config.template.ts";
2046
+ }, "getTemplateName");
2039
2047
  if (vitestWorkspaceFile) {
2040
2048
  const workspaceTemplate = await loadTemplate("vitest.workspace.template.ts", {
2041
2049
  EXTENDS_WORKSPACE: viteConfigFile ? relative(dirname(vitestWorkspaceFile), viteConfigFile) : "",
2042
2050
  CONFIG_DIR: options.configDir,
2043
- BROWSER_CONFIG: browserConfig,
2044
2051
  SETUP_FILE: relative(dirname(vitestWorkspaceFile), vitestSetupFile)
2045
2052
  }).then((t) => t.replace(`
2046
2053
  'ROOT_CONFIG',`, "").replace(/\s+extends: '',/, ""));
@@ -2074,15 +2081,13 @@ async function postInstall(options) {
2074
2081
  } else if (rootConfig) {
2075
2082
  let target, updated;
2076
2083
  const configFile = await fs2.readFile(rootConfig, "utf8");
2077
- const hasProjectsConfig = configFile.includes("projects:");
2078
2084
  const configFileHasTypeReference = configFile.match(
2079
2085
  /\/\/\/\s*<reference\s+types=["']vitest\/config["']\s*\/>/
2080
2086
  );
2081
- const templateName = hasProjectsConfig || isVitest3_2OrNewer ? "vitest.config.3.2.template.ts" : "vitest.config.template.ts";
2087
+ const templateName = getTemplateName();
2082
2088
  if (templateName) {
2083
2089
  const configTemplate = await loadTemplate(templateName, {
2084
2090
  CONFIG_DIR: options.configDir,
2085
- BROWSER_CONFIG: browserConfig,
2086
2091
  SETUP_FILE: relative(dirname(rootConfig), vitestSetupFile)
2087
2092
  });
2088
2093
  const source = babelParse(configTemplate);
@@ -2111,14 +2116,10 @@ async function postInstall(options) {
2111
2116
  }
2112
2117
  } else {
2113
2118
  const newConfigFile = resolve(`vitest.config.${fileExtension}`);
2114
- const configTemplate = await loadTemplate(
2115
- isVitest3_2OrNewer ? "vitest.config.3.2.template.ts" : "vitest.config.template.ts",
2116
- {
2117
- CONFIG_DIR: options.configDir,
2118
- BROWSER_CONFIG: browserConfig,
2119
- SETUP_FILE: relative(dirname(newConfigFile), vitestSetupFile)
2120
- }
2121
- );
2119
+ const configTemplate = await loadTemplate(getTemplateName(), {
2120
+ CONFIG_DIR: options.configDir,
2121
+ SETUP_FILE: relative(dirname(newConfigFile), vitestSetupFile)
2122
+ });
2122
2123
  logger2.line(1);
2123
2124
  logger2.plain(`${step} Creating a Vitest config file:`);
2124
2125
  logger2.plain(` ${newConfigFile}`);
@@ -2129,21 +2130,23 @@ async function postInstall(options) {
2129
2130
  if (a11yAddon) {
2130
2131
  try {
2131
2132
  logger2.plain(`${step} Setting up ${addonA11yName} for @storybook/addon-vitest:`);
2132
- const command = ["automigrate", "addon-a11y-addon-test"];
2133
- command.push("--loglevel", "silent");
2134
- command.push("--yes", "--skip-doctor");
2135
- if (options.packageManager) {
2136
- command.push("--package-manager", options.packageManager);
2137
- }
2138
- if (options.skipInstall) {
2139
- command.push("--skip-install");
2140
- }
2141
- if (options.configDir !== ".storybook") {
2142
- command.push("--config-dir", `"${options.configDir}"`);
2143
- }
2144
- await execa("storybook", command, {
2145
- stdio: "inherit"
2146
- });
2133
+ await execa(
2134
+ "storybook",
2135
+ [
2136
+ "automigrate",
2137
+ "addon-a11y-addon-test",
2138
+ "--loglevel",
2139
+ "silent",
2140
+ "--yes",
2141
+ "--skip-doctor",
2142
+ ...options.packageManager ? ["--package-manager", options.packageManager] : [],
2143
+ ...options.skipInstall ? ["--skip-install"] : [],
2144
+ ...options.configDir !== ".storybook" ? ["--config-dir", `"${options.configDir}"`] : []
2145
+ ],
2146
+ {
2147
+ stdio: "inherit"
2148
+ }
2149
+ );
2147
2150
  } catch (e) {
2148
2151
  logErrors(
2149
2152
  "\u{1F6A8} Oh no!",
package/dist/preset.js CHANGED
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,11 +12,11 @@ var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
12
12
  import {
13
13
  log,
14
14
  noop
15
- } from "./_node-chunks/chunk-KBKL6DHV.js";
15
+ } from "./_node-chunks/chunk-2MBZJ6X7.js";
16
16
  import {
17
17
  execaNode,
18
18
  importMetaResolve
19
- } from "./_node-chunks/chunk-ZZ4PTERA.js";
19
+ } from "./_node-chunks/chunk-LE4ECTDM.js";
20
20
  import {
21
21
  ADDON_ID,
22
22
  COVERAGE_DIRECTORY,
@@ -25,17 +25,17 @@ import {
25
25
  STORYBOOK_ADDON_TEST_CHANNEL,
26
26
  TEST_PROVIDER_STORE_CHANNEL_EVENT_NAME,
27
27
  storeOptions
28
- } from "./_node-chunks/chunk-7NYAMOQN.js";
28
+ } from "./_node-chunks/chunk-NIFIULOU.js";
29
29
  import {
30
30
  require_picocolors
31
- } from "./_node-chunks/chunk-PCE2HVIF.js";
31
+ } from "./_node-chunks/chunk-KLZUEOJU.js";
32
32
  import {
33
33
  normalize
34
- } from "./_node-chunks/chunk-AWEIVCJU.js";
34
+ } from "./_node-chunks/chunk-MJYEU6ZQ.js";
35
35
  import {
36
36
  __name,
37
37
  __toESM
38
- } from "./_node-chunks/chunk-NHCTXARL.js";
38
+ } from "./_node-chunks/chunk-U5S4GJRR.js";
39
39
 
40
40
  // src/preset.ts
41
41
  import { mkdir } from "node:fs/promises";
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -14,7 +14,7 @@ import {
14
14
  __name,
15
15
  __require,
16
16
  __toESM
17
- } from "../_node-chunks/chunk-NHCTXARL.js";
17
+ } from "../_node-chunks/chunk-U5S4GJRR.js";
18
18
 
19
19
  // ../../node_modules/tree-kill/index.js
20
20
  var require_tree_kill = __commonJS({
@@ -1,30 +1,30 @@
1
- import CJS_COMPAT_NODE_URL_ou05xbs91si from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ou05xbs91si from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ou05xbs91si from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vfm3p59sj7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vfm3p59sj7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vfm3p59sj7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ou05xbs91si.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ou05xbs91si.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ou05xbs91si.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vfm3p59sj7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vfm3p59sj7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vfm3p59sj7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  require_picocolors
14
- } from "../_node-chunks/chunk-PCE2HVIF.js";
14
+ } from "../_node-chunks/chunk-KLZUEOJU.js";
15
15
  import {
16
16
  join,
17
17
  normalize,
18
18
  relative,
19
19
  resolve,
20
20
  sep
21
- } from "../_node-chunks/chunk-AWEIVCJU.js";
21
+ } from "../_node-chunks/chunk-MJYEU6ZQ.js";
22
22
  import {
23
23
  __commonJS,
24
24
  __name,
25
25
  __require,
26
26
  __toESM
27
- } from "../_node-chunks/chunk-NHCTXARL.js";
27
+ } from "../_node-chunks/chunk-U5S4GJRR.js";
28
28
 
29
29
  // ../../node_modules/braces/lib/utils.js
30
30
  var require_utils = __commonJS({
@@ -3683,6 +3683,7 @@ var storybookTest = /* @__PURE__ */ __name(async (options) => {
3683
3683
  join(relative(finalOptions.vitestRoot, process.cwd()), "**/*.mdx").replaceAll(sep, "/")
3684
3684
  ],
3685
3685
  // if the existing deps.inline is true, we keep it as-is, because it will inline everything
3686
+ // TODO: Remove the check once we don't support Vitest 3 anymore
3686
3687
  ...nonMutableInputConfig.test?.server?.deps?.inline !== true ? {
3687
3688
  server: {
3688
3689
  deps: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/addon-vitest",
3
- "version": "10.0.0-rc.0",
3
+ "version": "10.0.0-rc.2",
4
4
  "description": "Storybook Vitest addon: Blazing fast component testing using stories",
5
5
  "keywords": [
6
6
  "storybook",
@@ -82,8 +82,8 @@
82
82
  "@types/micromatch": "^4.0.0",
83
83
  "@types/node": "^22.0.0",
84
84
  "@types/semver": "^7",
85
- "@vitest/browser": "^3.2.4",
86
- "@vitest/runner": "^3.2.4",
85
+ "@vitest/browser-playwright": "^4.0.1",
86
+ "@vitest/runner": "^4.0.1",
87
87
  "boxen": "^8.0.1",
88
88
  "empathic": "^2.0.0",
89
89
  "es-toolkit": "^1.36.0",
@@ -101,18 +101,22 @@
101
101
  "tree-kill": "^1.2.2",
102
102
  "ts-dedent": "^2.2.0",
103
103
  "typescript": "^5.8.3",
104
- "vitest": "^3.2.4"
104
+ "vitest": "^4.0.1"
105
105
  },
106
106
  "peerDependencies": {
107
- "@vitest/browser": "^3.0.0",
108
- "@vitest/runner": "^3.0.0",
109
- "storybook": "^10.0.0-rc.0",
110
- "vitest": "^3.0.0"
107
+ "@vitest/browser": "^3.0.0 || ^4.0.0",
108
+ "@vitest/browser-playwright": "^4.0.0",
109
+ "@vitest/runner": "^3.0.0 || ^4.0.0",
110
+ "storybook": "^10.0.0-rc.2",
111
+ "vitest": "^3.0.0 || ^4.0.0"
111
112
  },
112
113
  "peerDependenciesMeta": {
113
114
  "@vitest/browser": {
114
115
  "optional": true
115
116
  },
117
+ "@vitest/browser-playwright": {
118
+ "optional": true
119
+ },
116
120
  "@vitest/runner": {
117
121
  "optional": true
118
122
  },
@@ -21,7 +21,12 @@ export default defineConfig({
21
21
  ],
22
22
  test: {
23
23
  name: 'storybook',
24
- browser: BROWSER_CONFIG,
24
+ browser: {
25
+ enabled: true,
26
+ headless: true,
27
+ provider: 'playwright',
28
+ instances: [{ browser: 'chromium' }],
29
+ },
25
30
  setupFiles: ['SETUP_FILE'],
26
31
  },
27
32
  },
@@ -0,0 +1,37 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+
4
+ import { defineConfig } from 'vitest/config';
5
+
6
+ import { storybookTest } from '@storybook/addon-vitest/vitest-plugin';
7
+
8
+ import { playwright } from '@vitest/browser-playwright';
9
+
10
+ const dirname =
11
+ typeof __dirname !== 'undefined' ? __dirname : path.dirname(fileURLToPath(import.meta.url));
12
+
13
+ // More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon
14
+ export default defineConfig({
15
+ test: {
16
+ projects: [
17
+ {
18
+ extends: true,
19
+ plugins: [
20
+ // The plugin will run tests for the stories defined in your Storybook config
21
+ // See options at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon#storybooktest
22
+ storybookTest({ configDir: path.join(dirname, 'CONFIG_DIR') }),
23
+ ],
24
+ test: {
25
+ name: 'storybook',
26
+ browser: {
27
+ enabled: true,
28
+ headless: true,
29
+ provider: playwright({}),
30
+ instances: [{ browser: 'chromium' }],
31
+ },
32
+ setupFiles: ['SETUP_FILE'],
33
+ },
34
+ },
35
+ ],
36
+ },
37
+ });
@@ -21,7 +21,12 @@ export default defineConfig({
21
21
  ],
22
22
  test: {
23
23
  name: 'storybook',
24
- browser: BROWSER_CONFIG,
24
+ browser: {
25
+ enabled: true,
26
+ headless: true,
27
+ provider: 'playwright',
28
+ instances: [{ browser: 'chromium' }],
29
+ },
25
30
  setupFiles: ['SETUP_FILE'],
26
31
  },
27
32
  },
@@ -20,7 +20,12 @@ export default defineWorkspace([
20
20
  ],
21
21
  test: {
22
22
  name: 'storybook',
23
- browser: BROWSER_CONFIG,
23
+ browser: {
24
+ enabled: true,
25
+ headless: true,
26
+ provider: 'playwright',
27
+ instances: [{ browser: 'chromium' }],
28
+ },
24
29
  setupFiles: ['SETUP_FILE'],
25
30
  },
26
31
  },