@storybook/addon-vitest 10.0.0-beta.9 → 10.0.0-rc.1

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,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,24 +1,24 @@
1
- import CJS_COMPAT_NODE_URL_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-JEWSOIZ6.js";
14
+ } from "./chunk-LRVNML7Z.js";
15
15
  import {
16
16
  require_picocolors
17
- } from "./chunk-P2F7ZUIJ.js";
17
+ } from "./chunk-U4KT6FHQ.js";
18
18
  import {
19
19
  __name,
20
20
  __toESM
21
- } from "./chunk-2F6CUGC5.js";
21
+ } from "./chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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_ri4xlintze.createRequire(import.meta.url);
12
12
  import {
13
13
  dirname,
14
14
  join
15
- } from "./chunk-VXUUDD6S.js";
15
+ } from "./chunk-LOSOEEMO.js";
16
16
  import {
17
17
  __commonJS,
18
18
  __name,
19
19
  __require,
20
20
  __toESM
21
- } from "./chunk-2F6CUGC5.js";
21
+ } from "./chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-2F6CUGC5.js";
14
+ } from "./chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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_ri4xlintze.createRequire(import.meta.url);
12
12
  import {
13
13
  __commonJS,
14
14
  __name
15
- } from "./chunk-2F6CUGC5.js";
15
+ } from "./chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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_ri4xlintze.createRequire(import.meta.url);
12
12
  import {
13
13
  __commonJS,
14
14
  __name
15
- } from "./chunk-2F6CUGC5.js";
15
+ } from "./chunk-35H5PN2O.js";
16
16
 
17
17
  // ../../node_modules/semver/internal/constants.js
18
18
  var require_constants = __commonJS({
@@ -1,17 +1,17 @@
1
- import CJS_COMPAT_NODE_URL_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-2F6CUGC5.js";
14
+ } from "./chunk-35H5PN2O.js";
15
15
 
16
16
  // src/utils.ts
17
17
  function getAddonNames(mainConfig) {
@@ -1,23 +1,23 @@
1
- import CJS_COMPAT_NODE_URL_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-HTFPQDSJ.js";
14
+ } from "../_node-chunks/chunk-YLSDIJ7Y.js";
15
15
  import {
16
16
  __commonJS,
17
17
  __name,
18
18
  __require,
19
19
  __toESM
20
- } from "../_node-chunks/chunk-2F6CUGC5.js";
20
+ } from "../_node-chunks/chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-4CI7I75A.js";
14
+ } from "../_node-chunks/chunk-DA6NMBDE.js";
15
15
  import {
16
16
  any,
17
17
  errorToErrorLike
18
- } from "../_node-chunks/chunk-GLUJNSD6.js";
18
+ } from "../_node-chunks/chunk-ZPQT3SLX.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-JEWSOIZ6.js";
26
- import "../_node-chunks/chunk-P2F7ZUIJ.js";
25
+ } from "../_node-chunks/chunk-LRVNML7Z.js";
26
+ import "../_node-chunks/chunk-U4KT6FHQ.js";
27
27
  import {
28
28
  dirname,
29
29
  join,
30
30
  normalize,
31
31
  path
32
- } from "../_node-chunks/chunk-VXUUDD6S.js";
32
+ } from "../_node-chunks/chunk-LOSOEEMO.js";
33
33
  import {
34
34
  __name
35
- } from "../_node-chunks/chunk-2F6CUGC5.js";
35
+ } from "../_node-chunks/chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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_ri4xlintze.createRequire(import.meta.url);
12
12
  import {
13
13
  execa,
14
14
  resolvePackageDir
15
- } from "./_node-chunks/chunk-7SZEDODQ.js";
15
+ } from "./_node-chunks/chunk-EWYVCAAX.js";
16
16
  import {
17
17
  any,
18
18
  getAddonNames,
19
19
  up
20
- } from "./_node-chunks/chunk-GLUJNSD6.js";
20
+ } from "./_node-chunks/chunk-ZPQT3SLX.js";
21
21
  import {
22
22
  DOCUMENTATION_LINK,
23
23
  SUPPORTED_FRAMEWORKS
24
- } from "./_node-chunks/chunk-JEWSOIZ6.js";
24
+ } from "./_node-chunks/chunk-LRVNML7Z.js";
25
25
  import {
26
26
  dirname,
27
27
  join,
28
28
  relative,
29
29
  resolve
30
- } from "./_node-chunks/chunk-VXUUDD6S.js";
30
+ } from "./_node-chunks/chunk-LOSOEEMO.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-HTFPQDSJ.js";
40
+ } from "./_node-chunks/chunk-YLSDIJ7Y.js";
41
41
  import {
42
42
  __commonJS,
43
43
  __name,
44
44
  __toESM
45
- } from "./_node-chunks/chunk-2F6CUGC5.js";
45
+ } from "./_node-chunks/chunk-35H5PN2O.js";
46
46
 
47
47
  // ../../node_modules/semver/functions/parse.js
48
48
  var require_parse = __commonJS({
@@ -1595,6 +1595,35 @@ var mergeProperties = /* @__PURE__ */ __name((source, target) => {
1595
1595
  }, "mergeProperties");
1596
1596
  var updateConfigFile = /* @__PURE__ */ __name((source, target) => {
1597
1597
  let updated = false;
1598
+ const sourceExportDefault = source.program.body.find(
1599
+ (n) => n.type === "ExportDefaultDeclaration"
1600
+ );
1601
+ if (!sourceExportDefault || sourceExportDefault.declaration.type !== "CallExpression") {
1602
+ return false;
1603
+ }
1604
+ const targetExportDefault = target.program.body.find(
1605
+ (n) => n.type === "ExportDefaultDeclaration"
1606
+ );
1607
+ if (!targetExportDefault) {
1608
+ return false;
1609
+ }
1610
+ if (targetExportDefault.declaration.type === "CallExpression" && targetExportDefault.declaration.callee.type === "Identifier" && targetExportDefault.declaration.callee.name === "defineConfig" && targetExportDefault.declaration.arguments.length > 0 && targetExportDefault.declaration.arguments[0].type === "ArrowFunctionExpression") {
1611
+ return false;
1612
+ }
1613
+ let canHandleConfig = false;
1614
+ if (targetExportDefault.declaration.type === "ObjectExpression") {
1615
+ canHandleConfig = true;
1616
+ } else if (targetExportDefault.declaration.type === "CallExpression" && targetExportDefault.declaration.callee.type === "Identifier" && targetExportDefault.declaration.callee.name === "defineConfig" && targetExportDefault.declaration.arguments[0]?.type === "ObjectExpression") {
1617
+ canHandleConfig = true;
1618
+ } else if (targetExportDefault.declaration.type === "CallExpression" && targetExportDefault.declaration.callee.type === "Identifier" && targetExportDefault.declaration.callee.name === "mergeConfig" && targetExportDefault.declaration.arguments.length >= 2) {
1619
+ const defineConfigNodes = targetExportDefault.declaration.arguments.filter(
1620
+ (arg) => arg?.type === "CallExpression" && arg.callee.type === "Identifier" && arg.callee.name === "defineConfig" && arg.arguments[0]?.type === "ObjectExpression"
1621
+ );
1622
+ canHandleConfig = defineConfigNodes.length > 0;
1623
+ }
1624
+ if (!canHandleConfig) {
1625
+ return false;
1626
+ }
1598
1627
  for (const sourceNode of source.program.body) {
1599
1628
  if (sourceNode.type === "ImportDeclaration") {
1600
1629
  if (!target.program.body.some(
@@ -1622,6 +1651,66 @@ var updateConfigFile = /* @__PURE__ */ __name((source, target) => {
1622
1651
  } else if (exportDefault.declaration.type === "CallExpression" && exportDefault.declaration.callee.type === "Identifier" && exportDefault.declaration.callee.name === "defineConfig" && exportDefault.declaration.arguments[0]?.type === "ObjectExpression") {
1623
1652
  mergeProperties(properties, exportDefault.declaration.arguments[0].properties);
1624
1653
  updated = true;
1654
+ } else if (exportDefault.declaration.type === "CallExpression" && exportDefault.declaration.callee.type === "Identifier" && exportDefault.declaration.callee.name === "mergeConfig" && exportDefault.declaration.arguments.length >= 2) {
1655
+ const defineConfigNodes = exportDefault.declaration.arguments.filter(
1656
+ (arg) => arg?.type === "CallExpression" && arg.callee.type === "Identifier" && arg.callee.name === "defineConfig" && arg.arguments[0]?.type === "ObjectExpression"
1657
+ );
1658
+ const defineConfigNodeWithTest = defineConfigNodes.find(
1659
+ (node) => node.arguments[0].type === "ObjectExpression" && node.arguments[0].properties.some(
1660
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1661
+ )
1662
+ );
1663
+ const defineConfigNode = defineConfigNodeWithTest || defineConfigNodes[0];
1664
+ if (!defineConfigNode) {
1665
+ return false;
1666
+ }
1667
+ const defineConfigProps = defineConfigNode.arguments[0];
1668
+ const existingTestProp = defineConfigProps.properties.find(
1669
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1670
+ );
1671
+ if (existingTestProp && existingTestProp.value.type === "ObjectExpression") {
1672
+ const templateTestProp = properties.find(
1673
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && p.key.name === "test"
1674
+ );
1675
+ if (templateTestProp && templateTestProp.value.type === "ObjectExpression") {
1676
+ const workspaceOrProjectsProp = templateTestProp.value.properties.find(
1677
+ (p) => p.type === "ObjectProperty" && p.key.type === "Identifier" && (p.key.name === "workspace" || p.key.name === "projects")
1678
+ );
1679
+ if (workspaceOrProjectsProp && workspaceOrProjectsProp.value.type === "ArrayExpression") {
1680
+ const existingTestProject = {
1681
+ type: "ObjectExpression",
1682
+ properties: [
1683
+ {
1684
+ type: "ObjectProperty",
1685
+ key: { type: "Identifier", name: "extends" },
1686
+ value: { type: "BooleanLiteral", value: true },
1687
+ computed: false,
1688
+ shorthand: false
1689
+ },
1690
+ {
1691
+ type: "ObjectProperty",
1692
+ key: { type: "Identifier", name: "test" },
1693
+ value: existingTestProp.value,
1694
+ computed: false,
1695
+ shorthand: false
1696
+ }
1697
+ ]
1698
+ };
1699
+ workspaceOrProjectsProp.value.elements.unshift(existingTestProject);
1700
+ defineConfigProps.properties = defineConfigProps.properties.filter(
1701
+ (p) => p !== existingTestProp
1702
+ );
1703
+ mergeProperties(properties, defineConfigProps.properties);
1704
+ } else {
1705
+ mergeProperties(properties, defineConfigProps.properties);
1706
+ }
1707
+ } else {
1708
+ mergeProperties(properties, defineConfigProps.properties);
1709
+ }
1710
+ } else {
1711
+ mergeProperties(properties, defineConfigProps.properties);
1712
+ }
1713
+ updated = true;
1625
1714
  }
1626
1715
  }
1627
1716
  }
@@ -1702,12 +1791,18 @@ async function postInstall(options) {
1702
1791
  const packageManager = JsPackageManagerFactory.getPackageManager({
1703
1792
  force: options.packageManager
1704
1793
  });
1705
- const info2 = await getStorybookInfo(options);
1706
- const allDeps = packageManager.getAllDependencies();
1707
- const dependencies = ["vitest", "@vitest/browser", "playwright"].filter((p) => !allDeps[p]);
1708
1794
  const vitestVersionSpecifier = await packageManager.getInstalledVersion("vitest");
1709
1795
  const coercedVitestVersion = vitestVersionSpecifier ? (0, import_semver.coerce)(vitestVersionSpecifier) : null;
1710
- 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]);
1711
1806
  const mainJsPath = getInterpretedFile(resolve(options.configDir, "main"));
1712
1807
  const config = await readConfig(mainJsPath);
1713
1808
  const hasCustomWebpackConfig = !!config.getFieldNode(["webpackFinal"]);
@@ -1841,7 +1936,7 @@ async function postInstall(options) {
1841
1936
  );
1842
1937
  try {
1843
1938
  const storybookVersion = await packageManager.getInstalledVersion("storybook");
1844
- dependencies.push(`@storybook/nextjs-vite@^${storybookVersion}`);
1939
+ uniqueDependencies.push(`@storybook/nextjs-vite@^${storybookVersion}`);
1845
1940
  } catch (e) {
1846
1941
  console.error("Failed to install @storybook/nextjs-vite. Please install it manually");
1847
1942
  }
@@ -1858,9 +1953,9 @@ async function postInstall(options) {
1858
1953
  Read more about Vitest coverage providers at https://vitest.dev/guide/coverage.html#coverage-providers
1859
1954
  `
1860
1955
  );
1861
- dependencies.push(`@vitest/coverage-v8`);
1956
+ uniqueDependencies.push(`@vitest/coverage-v8`);
1862
1957
  }
1863
- const versionedDependencies = dependencies.map((p) => {
1958
+ const versionedDependencies = uniqueDependencies.map((p) => {
1864
1959
  if (p.includes("vitest")) {
1865
1960
  return vitestVersionSpecifier ? `${p}@${vitestVersionSpecifier}` : p;
1866
1961
  }
@@ -1930,28 +2025,29 @@ async function postInstall(options) {
1930
2025
  setProjectAnnotations([${projectAnnotations.join(", ")}]);
1931
2026
  `
1932
2027
  );
1933
- const vitestWorkspaceFile = findFile("vitest.workspace", [".ts", ".js", ".json"]) || findFile("vitest.projects", [".ts", ".js", ".json"]);
2028
+ const vitestWorkspaceFile = findFile("vitest.workspace", [".ts", ".js", ".json"]);
1934
2029
  const viteConfigFile = findFile("vite.config");
1935
2030
  const vitestConfigFile = findFile("vitest.config");
1936
2031
  const vitestShimFile = findFile("vitest.shims.d");
1937
2032
  const rootConfig = vitestConfigFile || viteConfigFile;
1938
- const browserConfig = `{
1939
- enabled: true,
1940
- headless: true,
1941
- provider: 'playwright',
1942
- instances: [{ browser: 'chromium' }]
1943
- }`;
1944
2033
  if (fileExtension === "ts" && !vitestShimFile) {
1945
2034
  await writeFile(
1946
2035
  "vitest.shims.d.ts",
1947
- '/// <reference types="@vitest/browser/providers/playwright" />'
2036
+ isVitest4OrNewer ? '/// <reference types="@vitest/browser-playwright" />' : '/// <reference types="@vitest/browser/providers/playwright" />'
1948
2037
  );
1949
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");
1950
2047
  if (vitestWorkspaceFile) {
1951
2048
  const workspaceTemplate = await loadTemplate("vitest.workspace.template.ts", {
1952
2049
  EXTENDS_WORKSPACE: viteConfigFile ? relative(dirname(vitestWorkspaceFile), viteConfigFile) : "",
1953
2050
  CONFIG_DIR: options.configDir,
1954
- BROWSER_CONFIG: browserConfig,
1955
2051
  SETUP_FILE: relative(dirname(vitestWorkspaceFile), vitestSetupFile)
1956
2052
  }).then((t) => t.replace(`
1957
2053
  'ROOT_CONFIG',`, "").replace(/\s+extends: '',/, ""));
@@ -1985,15 +2081,13 @@ async function postInstall(options) {
1985
2081
  } else if (rootConfig) {
1986
2082
  let target, updated;
1987
2083
  const configFile = await fs2.readFile(rootConfig, "utf8");
1988
- const hasProjectsConfig = configFile.includes("projects:");
1989
2084
  const configFileHasTypeReference = configFile.match(
1990
2085
  /\/\/\/\s*<reference\s+types=["']vitest\/config["']\s*\/>/
1991
2086
  );
1992
- const templateName = hasProjectsConfig || isVitest3_2OrNewer ? "vitest.config.3.2.template.ts" : "vitest.config.template.ts";
2087
+ const templateName = getTemplateName();
1993
2088
  if (templateName) {
1994
2089
  const configTemplate = await loadTemplate(templateName, {
1995
2090
  CONFIG_DIR: options.configDir,
1996
- BROWSER_CONFIG: browserConfig,
1997
2091
  SETUP_FILE: relative(dirname(rootConfig), vitestSetupFile)
1998
2092
  });
1999
2093
  const source = babelParse(configTemplate);
@@ -2022,14 +2116,10 @@ async function postInstall(options) {
2022
2116
  }
2023
2117
  } else {
2024
2118
  const newConfigFile = resolve(`vitest.config.${fileExtension}`);
2025
- const configTemplate = await loadTemplate(
2026
- isVitest3_2OrNewer ? "vitest.config.3.2.template.ts" : "vitest.config.template.ts",
2027
- {
2028
- CONFIG_DIR: options.configDir,
2029
- BROWSER_CONFIG: browserConfig,
2030
- SETUP_FILE: relative(dirname(newConfigFile), vitestSetupFile)
2031
- }
2032
- );
2119
+ const configTemplate = await loadTemplate(getTemplateName(), {
2120
+ CONFIG_DIR: options.configDir,
2121
+ SETUP_FILE: relative(dirname(newConfigFile), vitestSetupFile)
2122
+ });
2033
2123
  logger2.line(1);
2034
2124
  logger2.plain(`${step} Creating a Vitest config file:`);
2035
2125
  logger2.plain(` ${newConfigFile}`);
@@ -2040,21 +2130,23 @@ async function postInstall(options) {
2040
2130
  if (a11yAddon) {
2041
2131
  try {
2042
2132
  logger2.plain(`${step} Setting up ${addonA11yName} for @storybook/addon-vitest:`);
2043
- const command = ["automigrate", "addon-a11y-addon-test"];
2044
- command.push("--loglevel", "silent");
2045
- command.push("--yes", "--skip-doctor");
2046
- if (options.packageManager) {
2047
- command.push("--package-manager", options.packageManager);
2048
- }
2049
- if (options.skipInstall) {
2050
- command.push("--skip-install");
2051
- }
2052
- if (options.configDir !== ".storybook") {
2053
- command.push("--config-dir", `"${options.configDir}"`);
2054
- }
2055
- await execa("storybook", command, {
2056
- stdio: "inherit"
2057
- });
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
+ );
2058
2150
  } catch (e) {
2059
2151
  logErrors(
2060
2152
  "\u{1F6A8} Oh no!",
package/dist/preset.js CHANGED
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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_ri4xlintze.createRequire(import.meta.url);
12
12
  import {
13
13
  log,
14
14
  noop
15
- } from "./_node-chunks/chunk-4CI7I75A.js";
15
+ } from "./_node-chunks/chunk-DA6NMBDE.js";
16
16
  import {
17
17
  execaNode,
18
18
  importMetaResolve
19
- } from "./_node-chunks/chunk-7SZEDODQ.js";
19
+ } from "./_node-chunks/chunk-EWYVCAAX.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-JEWSOIZ6.js";
28
+ } from "./_node-chunks/chunk-LRVNML7Z.js";
29
29
  import {
30
30
  require_picocolors
31
- } from "./_node-chunks/chunk-P2F7ZUIJ.js";
31
+ } from "./_node-chunks/chunk-U4KT6FHQ.js";
32
32
  import {
33
33
  normalize
34
- } from "./_node-chunks/chunk-VXUUDD6S.js";
34
+ } from "./_node-chunks/chunk-LOSOEEMO.js";
35
35
  import {
36
36
  __name,
37
37
  __toESM
38
- } from "./_node-chunks/chunk-2F6CUGC5.js";
38
+ } from "./_node-chunks/chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-2F6CUGC5.js";
17
+ } from "../_node-chunks/chunk-35H5PN2O.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_ri4xlintze from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_ri4xlintze from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_ri4xlintze from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0rv1vcx4ym7 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0rv1vcx4ym7 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_ri4xlintze.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_ri4xlintze.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_ri4xlintze.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0rv1vcx4ym7.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0rv1vcx4ym7.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0rv1vcx4ym7.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-P2F7ZUIJ.js";
14
+ } from "../_node-chunks/chunk-U4KT6FHQ.js";
15
15
  import {
16
16
  join,
17
17
  normalize,
18
18
  relative,
19
19
  resolve,
20
20
  sep
21
- } from "../_node-chunks/chunk-VXUUDD6S.js";
21
+ } from "../_node-chunks/chunk-LOSOEEMO.js";
22
22
  import {
23
23
  __commonJS,
24
24
  __name,
25
25
  __require,
26
26
  __toESM
27
- } from "../_node-chunks/chunk-2F6CUGC5.js";
27
+ } from "../_node-chunks/chunk-35H5PN2O.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-beta.9",
3
+ "version": "10.0.0-rc.1",
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-beta.9",
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.1",
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
  },