@storybook/addon-vitest 10.1.0-alpha.9 → 10.1.0-beta.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.
package/dist/preset.js CHANGED
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_6xsmo987rp5 from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_6xsmo987rp5 from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_6xsmo987rp5 from "node:module";
1
+ import CJS_COMPAT_NODE_URL_0y3a0b4lhx0h from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_0y3a0b4lhx0h from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_0y3a0b4lhx0h from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_6xsmo987rp5.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_6xsmo987rp5.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_6xsmo987rp5.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_0y3a0b4lhx0h.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_0y3a0b4lhx0h.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_0y3a0b4lhx0h.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,11 +12,10 @@ var require = CJS_COMPAT_NODE_MODULE_6xsmo987rp5.createRequire(import.meta.url);
12
12
  import {
13
13
  log,
14
14
  noop
15
- } from "./_node-chunks/chunk-6Q62BC44.js";
15
+ } from "./_node-chunks/chunk-NMJA4RKJ.js";
16
16
  import {
17
- execaNode,
18
17
  importMetaResolve
19
- } from "./_node-chunks/chunk-XKCUKATS.js";
18
+ } from "./_node-chunks/chunk-LVG5WDH3.js";
20
19
  import {
21
20
  ADDON_ID,
22
21
  COVERAGE_DIRECTORY,
@@ -25,17 +24,19 @@ import {
25
24
  STORYBOOK_ADDON_TEST_CHANNEL,
26
25
  TEST_PROVIDER_STORE_CHANNEL_EVENT_NAME,
27
26
  storeOptions
28
- } from "./_node-chunks/chunk-4TORVAZH.js";
27
+ } from "./_node-chunks/chunk-3NMZMB7I.js";
29
28
  import {
30
29
  require_picocolors
31
- } from "./_node-chunks/chunk-WMX7UISE.js";
30
+ } from "./_node-chunks/chunk-XHKBPQ3A.js";
31
+ import {
32
+ require_dist
33
+ } from "./_node-chunks/chunk-MZFBI7ON.js";
32
34
  import {
33
35
  normalize
34
- } from "./_node-chunks/chunk-RDCJFLHV.js";
36
+ } from "./_node-chunks/chunk-GK6RMDY2.js";
35
37
  import {
36
- __name,
37
38
  __toESM
38
- } from "./_node-chunks/chunk-W5CYX7PP.js";
39
+ } from "./_node-chunks/chunk-HKXN64KX.js";
39
40
 
40
41
  // src/preset.ts
41
42
  import { mkdir } from "node:fs/promises";
@@ -53,172 +54,103 @@ import { cleanPaths, oneWayHash, sanitizeError, telemetry } from "storybook/inte
53
54
 
54
55
  // ../../node_modules/es-toolkit/dist/predicate/isPlainObject.mjs
55
56
  function isPlainObject(value) {
56
- if (!value || typeof value !== "object") {
57
- return false;
58
- }
59
- const proto = Object.getPrototypeOf(value);
60
- const hasObjectPrototype = proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null;
61
- if (!hasObjectPrototype) {
62
- return false;
63
- }
64
- return Object.prototype.toString.call(value) === "[object Object]";
57
+ if (!value || typeof value != "object")
58
+ return !1;
59
+ let proto = Object.getPrototypeOf(value);
60
+ return proto === null || proto === Object.prototype || Object.getPrototypeOf(proto) === null ? Object.prototype.toString.call(value) === "[object Object]" : !1;
65
61
  }
66
- __name(isPlainObject, "isPlainObject");
67
62
 
68
63
  // ../../node_modules/es-toolkit/dist/compat/_internal/getSymbols.mjs
69
64
  function getSymbols(object) {
70
65
  return Object.getOwnPropertySymbols(object).filter((symbol) => Object.prototype.propertyIsEnumerable.call(object, symbol));
71
66
  }
72
- __name(getSymbols, "getSymbols");
73
67
 
74
68
  // ../../node_modules/es-toolkit/dist/compat/_internal/getTag.mjs
75
69
  function getTag(value) {
76
- if (value == null) {
77
- return value === void 0 ? "[object Undefined]" : "[object Null]";
78
- }
79
- return Object.prototype.toString.call(value);
70
+ return value == null ? value === void 0 ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(value);
80
71
  }
81
- __name(getTag, "getTag");
82
72
 
83
73
  // ../../node_modules/es-toolkit/dist/compat/_internal/tags.mjs
84
- var regexpTag = "[object RegExp]";
85
- var stringTag = "[object String]";
86
- var numberTag = "[object Number]";
87
- var booleanTag = "[object Boolean]";
88
- var argumentsTag = "[object Arguments]";
89
- var symbolTag = "[object Symbol]";
90
- var dateTag = "[object Date]";
91
- var mapTag = "[object Map]";
92
- var setTag = "[object Set]";
93
- var arrayTag = "[object Array]";
94
- var functionTag = "[object Function]";
95
- var arrayBufferTag = "[object ArrayBuffer]";
96
- var objectTag = "[object Object]";
97
- var errorTag = "[object Error]";
98
- var dataViewTag = "[object DataView]";
99
- var uint8ArrayTag = "[object Uint8Array]";
100
- var uint8ClampedArrayTag = "[object Uint8ClampedArray]";
101
- var uint16ArrayTag = "[object Uint16Array]";
102
- var uint32ArrayTag = "[object Uint32Array]";
103
- var bigUint64ArrayTag = "[object BigUint64Array]";
104
- var int8ArrayTag = "[object Int8Array]";
105
- var int16ArrayTag = "[object Int16Array]";
106
- var int32ArrayTag = "[object Int32Array]";
107
- var bigInt64ArrayTag = "[object BigInt64Array]";
108
- var float32ArrayTag = "[object Float32Array]";
109
- var float64ArrayTag = "[object Float64Array]";
74
+ var regexpTag = "[object RegExp]", stringTag = "[object String]", numberTag = "[object Number]", booleanTag = "[object Boolean]", argumentsTag = "[object Arguments]", symbolTag = "[object Symbol]", dateTag = "[object Date]", mapTag = "[object Map]", setTag = "[object Set]", arrayTag = "[object Array]", functionTag = "[object Function]", arrayBufferTag = "[object ArrayBuffer]", objectTag = "[object Object]", errorTag = "[object Error]", dataViewTag = "[object DataView]", uint8ArrayTag = "[object Uint8Array]", uint8ClampedArrayTag = "[object Uint8ClampedArray]", uint16ArrayTag = "[object Uint16Array]", uint32ArrayTag = "[object Uint32Array]", bigUint64ArrayTag = "[object BigUint64Array]", int8ArrayTag = "[object Int8Array]", int16ArrayTag = "[object Int16Array]", int32ArrayTag = "[object Int32Array]", bigInt64ArrayTag = "[object BigInt64Array]", float32ArrayTag = "[object Float32Array]", float64ArrayTag = "[object Float64Array]";
110
75
 
111
76
  // ../../node_modules/es-toolkit/dist/compat/util/eq.mjs
112
77
  function eq(value, other) {
113
78
  return value === other || Number.isNaN(value) && Number.isNaN(other);
114
79
  }
115
- __name(eq, "eq");
116
80
 
117
81
  // ../../node_modules/es-toolkit/dist/predicate/isEqualWith.mjs
118
82
  function isEqualWith(a, b, areValuesEqual) {
119
83
  return isEqualWithImpl(a, b, void 0, void 0, void 0, void 0, areValuesEqual);
120
84
  }
121
- __name(isEqualWith, "isEqualWith");
122
85
  function isEqualWithImpl(a, b, property, aParent, bParent, stack, areValuesEqual) {
123
- const result = areValuesEqual(a, b, property, aParent, bParent, stack);
124
- if (result !== void 0) {
86
+ let result = areValuesEqual(a, b, property, aParent, bParent, stack);
87
+ if (result !== void 0)
125
88
  return result;
126
- }
127
- if (typeof a === typeof b) {
89
+ if (typeof a == typeof b)
128
90
  switch (typeof a) {
129
91
  case "bigint":
130
92
  case "string":
131
93
  case "boolean":
132
94
  case "symbol":
133
- case "undefined": {
95
+ case "undefined":
134
96
  return a === b;
135
- }
136
- case "number": {
97
+ case "number":
137
98
  return a === b || Object.is(a, b);
138
- }
139
- case "function": {
99
+ case "function":
140
100
  return a === b;
141
- }
142
- case "object": {
101
+ case "object":
143
102
  return areObjectsEqual(a, b, stack, areValuesEqual);
144
- }
145
103
  }
146
- }
147
104
  return areObjectsEqual(a, b, stack, areValuesEqual);
148
105
  }
149
- __name(isEqualWithImpl, "isEqualWithImpl");
150
106
  function areObjectsEqual(a, b, stack, areValuesEqual) {
151
- if (Object.is(a, b)) {
152
- return true;
153
- }
154
- let aTag = getTag(a);
155
- let bTag = getTag(b);
156
- if (aTag === argumentsTag) {
157
- aTag = objectTag;
158
- }
159
- if (bTag === argumentsTag) {
160
- bTag = objectTag;
161
- }
162
- if (aTag !== bTag) {
163
- return false;
164
- }
107
+ if (Object.is(a, b))
108
+ return !0;
109
+ let aTag = getTag(a), bTag = getTag(b);
110
+ if (aTag === argumentsTag && (aTag = objectTag), bTag === argumentsTag && (bTag = objectTag), aTag !== bTag)
111
+ return !1;
165
112
  switch (aTag) {
166
113
  case stringTag:
167
114
  return a.toString() === b.toString();
168
115
  case numberTag: {
169
- const x = a.valueOf();
170
- const y = b.valueOf();
116
+ let x = a.valueOf(), y = b.valueOf();
171
117
  return eq(x, y);
172
118
  }
173
119
  case booleanTag:
174
120
  case dateTag:
175
121
  case symbolTag:
176
122
  return Object.is(a.valueOf(), b.valueOf());
177
- case regexpTag: {
123
+ case regexpTag:
178
124
  return a.source === b.source && a.flags === b.flags;
179
- }
180
- case functionTag: {
125
+ case functionTag:
181
126
  return a === b;
182
- }
183
127
  }
184
128
  stack = stack ?? /* @__PURE__ */ new Map();
185
- const aStack = stack.get(a);
186
- const bStack = stack.get(b);
187
- if (aStack != null && bStack != null) {
129
+ let aStack = stack.get(a), bStack = stack.get(b);
130
+ if (aStack != null && bStack != null)
188
131
  return aStack === b;
189
- }
190
- stack.set(a, b);
191
- stack.set(b, a);
132
+ stack.set(a, b), stack.set(b, a);
192
133
  try {
193
134
  switch (aTag) {
194
135
  case mapTag: {
195
- if (a.size !== b.size) {
196
- return false;
197
- }
198
- for (const [key, value] of a.entries()) {
199
- if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual)) {
200
- return false;
201
- }
202
- }
203
- return true;
136
+ if (a.size !== b.size)
137
+ return !1;
138
+ for (let [key, value] of a.entries())
139
+ if (!b.has(key) || !isEqualWithImpl(value, b.get(key), key, a, b, stack, areValuesEqual))
140
+ return !1;
141
+ return !0;
204
142
  }
205
143
  case setTag: {
206
- if (a.size !== b.size) {
207
- return false;
208
- }
209
- const aValues = Array.from(a.values());
210
- const bValues = Array.from(b.values());
144
+ if (a.size !== b.size)
145
+ return !1;
146
+ let aValues = Array.from(a.values()), bValues = Array.from(b.values());
211
147
  for (let i = 0; i < aValues.length; i++) {
212
- const aValue = aValues[i];
213
- const index = bValues.findIndex((bValue) => {
214
- return isEqualWithImpl(aValue, bValue, void 0, a, b, stack, areValuesEqual);
215
- });
216
- if (index === -1) {
217
- return false;
218
- }
148
+ let aValue = aValues[i], index = bValues.findIndex((bValue) => isEqualWithImpl(aValue, bValue, void 0, a, b, stack, areValuesEqual));
149
+ if (index === -1)
150
+ return !1;
219
151
  bValues.splice(index, 1);
220
152
  }
221
- return true;
153
+ return !0;
222
154
  }
223
155
  case arrayTag:
224
156
  case uint8ArrayTag:
@@ -232,166 +164,109 @@ function areObjectsEqual(a, b, stack, areValuesEqual) {
232
164
  case bigInt64ArrayTag:
233
165
  case float32ArrayTag:
234
166
  case float64ArrayTag: {
235
- if (typeof Buffer !== "undefined" && Buffer.isBuffer(a) !== Buffer.isBuffer(b)) {
236
- return false;
237
- }
238
- if (a.length !== b.length) {
239
- return false;
240
- }
241
- for (let i = 0; i < a.length; i++) {
242
- if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual)) {
243
- return false;
244
- }
245
- }
246
- return true;
167
+ if (typeof Buffer < "u" && Buffer.isBuffer(a) !== Buffer.isBuffer(b) || a.length !== b.length)
168
+ return !1;
169
+ for (let i = 0; i < a.length; i++)
170
+ if (!isEqualWithImpl(a[i], b[i], i, a, b, stack, areValuesEqual))
171
+ return !1;
172
+ return !0;
247
173
  }
248
- case arrayBufferTag: {
249
- if (a.byteLength !== b.byteLength) {
250
- return false;
251
- }
252
- return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
253
- }
254
- case dataViewTag: {
255
- if (a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset) {
256
- return false;
257
- }
258
- return areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
259
- }
260
- case errorTag: {
174
+ case arrayBufferTag:
175
+ return a.byteLength !== b.byteLength ? !1 : areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
176
+ case dataViewTag:
177
+ return a.byteLength !== b.byteLength || a.byteOffset !== b.byteOffset ? !1 : areObjectsEqual(new Uint8Array(a), new Uint8Array(b), stack, areValuesEqual);
178
+ case errorTag:
261
179
  return a.name === b.name && a.message === b.message;
262
- }
263
180
  case objectTag: {
264
- const areEqualInstances = areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) || isPlainObject(a) && isPlainObject(b);
265
- if (!areEqualInstances) {
266
- return false;
267
- }
268
- const aKeys = [...Object.keys(a), ...getSymbols(a)];
269
- const bKeys = [...Object.keys(b), ...getSymbols(b)];
270
- if (aKeys.length !== bKeys.length) {
271
- return false;
272
- }
181
+ if (!(areObjectsEqual(a.constructor, b.constructor, stack, areValuesEqual) || isPlainObject(a) && isPlainObject(b)))
182
+ return !1;
183
+ let aKeys = [...Object.keys(a), ...getSymbols(a)], bKeys = [...Object.keys(b), ...getSymbols(b)];
184
+ if (aKeys.length !== bKeys.length)
185
+ return !1;
273
186
  for (let i = 0; i < aKeys.length; i++) {
274
- const propKey = aKeys[i];
275
- const aProp = a[propKey];
276
- if (!Object.hasOwn(b, propKey)) {
277
- return false;
278
- }
279
- const bProp = b[propKey];
280
- if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual)) {
281
- return false;
282
- }
187
+ let propKey = aKeys[i], aProp = a[propKey];
188
+ if (!Object.hasOwn(b, propKey))
189
+ return !1;
190
+ let bProp = b[propKey];
191
+ if (!isEqualWithImpl(aProp, bProp, propKey, a, b, stack, areValuesEqual))
192
+ return !1;
283
193
  }
284
- return true;
285
- }
286
- default: {
287
- return false;
194
+ return !0;
288
195
  }
196
+ default:
197
+ return !1;
289
198
  }
290
199
  } finally {
291
- stack.delete(a);
292
- stack.delete(b);
200
+ stack.delete(a), stack.delete(b);
293
201
  }
294
202
  }
295
- __name(areObjectsEqual, "areObjectsEqual");
296
203
 
297
204
  // ../../node_modules/es-toolkit/dist/predicate/isEqual.mjs
298
205
  function isEqual(a, b) {
299
206
  return isEqualWith(a, b, noop);
300
207
  }
301
- __name(isEqual, "isEqual");
302
208
 
303
209
  // src/preset.ts
304
- var import_picocolors = __toESM(require_picocolors(), 1);
305
- import { dedent } from "ts-dedent";
210
+ var import_picocolors = __toESM(require_picocolors(), 1), import_ts_dedent = __toESM(require_dist(), 1);
306
211
 
307
212
  // src/node/boot-test-runner.ts
308
213
  import { fileURLToPath } from "node:url";
214
+ import { executeNodeCommand } from "storybook/internal/common";
309
215
  import {
310
216
  internal_universalStatusStore,
311
217
  internal_universalTestProviderStore
312
218
  } from "storybook/internal/core-server";
313
- var MAX_START_TIME = 3e4;
314
- var vitestModulePath = fileURLToPath(importMetaResolve("@storybook/addon-vitest/vitest"));
315
- var eventQueue = [];
316
- var child;
317
- var ready = false;
318
- var unsubscribeStore;
319
- var unsubscribeStatusStore;
320
- var unsubscribeTestProviderStore;
321
- var forwardUniversalStoreEvent = /* @__PURE__ */ __name((storeEventName) => (event, eventInfo) => {
219
+ var MAX_START_TIME = 3e4, vitestModulePath = fileURLToPath(importMetaResolve("@storybook/addon-vitest/vitest")), eventQueue = [], child, ready = !1, unsubscribeStore, unsubscribeStatusStore, unsubscribeTestProviderStore, forwardUniversalStoreEvent = (storeEventName) => (event, eventInfo) => {
322
220
  child?.send({
323
221
  type: storeEventName,
324
222
  args: [{ event, eventInfo }],
325
223
  from: "server"
326
224
  });
327
- }, "forwardUniversalStoreEvent");
328
- var bootTestRunner = /* @__PURE__ */ __name(async ({
225
+ }, bootTestRunner = async ({
329
226
  channel,
330
227
  store,
331
228
  options
332
229
  }) => {
333
- let stderr = [];
334
- const killChild = /* @__PURE__ */ __name(() => {
335
- unsubscribeStore?.();
336
- unsubscribeStatusStore?.();
337
- unsubscribeTestProviderStore?.();
338
- child?.kill();
339
- child = null;
340
- }, "killChild");
230
+ let stderr = [], killChild = () => {
231
+ unsubscribeStore?.(), unsubscribeStatusStore?.(), unsubscribeTestProviderStore?.(), child?.kill(), child = null;
232
+ };
341
233
  store.subscribe("FATAL_ERROR", killChild);
342
- const exit = /* @__PURE__ */ __name((code = 0) => {
343
- killChild();
344
- eventQueue.length = 0;
345
- process.exit(code);
346
- }, "exit");
347
- process.on("exit", exit);
348
- process.on("SIGINT", () => exit(0));
349
- process.on("SIGTERM", () => exit(0));
350
- const startChildProcess = /* @__PURE__ */ __name(() => new Promise((resolve, reject) => {
351
- child = execaNode(vitestModulePath, {
352
- env: {
353
- VITEST: "true",
354
- TEST: "true",
355
- VITEST_CHILD_PROCESS: "true",
356
- NODE_ENV: process.env.NODE_ENV ?? "test",
357
- STORYBOOK_CONFIG_DIR: normalize(options.configDir)
358
- },
359
- extendEnv: true
360
- });
361
- stderr = [];
362
- child.stdout?.on("data", log);
363
- child.stderr?.on("data", (data) => {
364
- if (!data.toString().match(/^\u001B\[33m/)) {
365
- log(data);
366
- stderr.push(data.toString());
234
+ let exit = (code = 0) => {
235
+ killChild(), eventQueue.length = 0, process.exit(code);
236
+ };
237
+ process.on("exit", exit), process.on("SIGINT", () => exit(0)), process.on("SIGTERM", () => exit(0));
238
+ let startChildProcess = () => new Promise((resolve, reject) => {
239
+ child = executeNodeCommand({
240
+ scriptPath: vitestModulePath,
241
+ options: {
242
+ env: {
243
+ VITEST: "true",
244
+ TEST: "true",
245
+ VITEST_CHILD_PROCESS: "true",
246
+ NODE_ENV: process.env.NODE_ENV ?? "test",
247
+ STORYBOOK_CONFIG_DIR: normalize(options.configDir)
248
+ },
249
+ extendEnv: !0
367
250
  }
368
- });
369
- unsubscribeStore = store.subscribe(forwardUniversalStoreEvent(STORE_CHANNEL_EVENT_NAME));
370
- unsubscribeStatusStore = internal_universalStatusStore.subscribe(
251
+ }), stderr = [], child.stdout?.on("data", log), child.stderr?.on("data", (data) => {
252
+ data.toString().match(/^\u001B\[33m/) || (log(data), stderr.push(data.toString()));
253
+ }), unsubscribeStore = store.subscribe(forwardUniversalStoreEvent(STORE_CHANNEL_EVENT_NAME)), unsubscribeStatusStore = internal_universalStatusStore.subscribe(
371
254
  forwardUniversalStoreEvent(STATUS_STORE_CHANNEL_EVENT_NAME)
372
- );
373
- unsubscribeTestProviderStore = internal_universalTestProviderStore.subscribe(
255
+ ), unsubscribeTestProviderStore = internal_universalTestProviderStore.subscribe(
374
256
  forwardUniversalStoreEvent(TEST_PROVIDER_STORE_CHANNEL_EVENT_NAME)
375
- );
376
- child.on("message", (event) => {
257
+ ), child.on("message", (event) => {
377
258
  if (event.type === "ready") {
378
- while (eventQueue.length) {
379
- const { type, args } = eventQueue.shift();
259
+ for (; eventQueue.length; ) {
260
+ let { type, args } = eventQueue.shift();
380
261
  child?.send({ type, args, from: "server" });
381
262
  }
382
263
  resolve();
383
- } else if (event.type === "uncaught-error") {
384
- store.send({
385
- type: "FATAL_ERROR",
386
- payload: event.payload
387
- });
388
- reject();
389
- } else {
390
- channel.emit(event.type, ...event.args);
391
- }
264
+ } else event.type === "uncaught-error" ? (store.send({
265
+ type: "FATAL_ERROR",
266
+ payload: event.payload
267
+ }), reject()) : channel.emit(event.type, ...event.args);
392
268
  });
393
- }), "startChildProcess");
394
- const timeout = new Promise(
269
+ }), timeout = new Promise(
395
270
  (_, reject) => setTimeout(
396
271
  reject,
397
272
  MAX_START_TIME,
@@ -402,7 +277,7 @@ var bootTestRunner = /* @__PURE__ */ __name(async ({
402
277
  )
403
278
  );
404
279
  await Promise.race([startChildProcess(), timeout]).catch((error) => {
405
- store.send({
280
+ throw store.send({
406
281
  type: "FATAL_ERROR",
407
282
  payload: {
408
283
  message: "Failed to start test runner process",
@@ -413,91 +288,65 @@ var bootTestRunner = /* @__PURE__ */ __name(async ({
413
288
  cause: error.cause
414
289
  }
415
290
  }
416
- });
417
- eventQueue.length = 0;
418
- throw error;
291
+ }), eventQueue.length = 0, error;
419
292
  });
420
- }, "bootTestRunner");
421
- var runTestRunner = /* @__PURE__ */ __name(async ({
293
+ }, runTestRunner = async ({
422
294
  channel,
423
295
  store,
424
296
  initEvent,
425
297
  initArgs,
426
298
  options
427
299
  }) => {
428
- if (!ready && initEvent) {
429
- eventQueue.push({ type: initEvent, args: initArgs });
430
- }
431
- if (!child) {
432
- ready = false;
433
- await bootTestRunner({ channel, store, options });
434
- ready = true;
435
- }
436
- }, "runTestRunner");
300
+ !ready && initEvent && eventQueue.push({ type: initEvent, args: initArgs }), child || (ready = !1, await bootTestRunner({ channel, store, options }), ready = !0);
301
+ };
437
302
 
438
303
  // src/preset.ts
439
- var experimental_serverChannel = /* @__PURE__ */ __name(async (channel, options) => {
440
- const core = await options.presets.apply("core");
441
- const previewPath = loadPreviewOrConfigFile({ configDir: options.configDir });
442
- const previewAnnotations = await options.presets.apply(
304
+ var experimental_serverChannel = async (channel, options) => {
305
+ let core = await options.presets.apply("core"), previewPath = loadPreviewOrConfigFile({ configDir: options.configDir }), previewAnnotations = await options.presets.apply(
443
306
  "previewAnnotations",
444
307
  [],
445
308
  options
446
- );
447
- const resolvedPreviewBuilder = typeof core?.builder === "string" ? core.builder : core?.builder?.name;
448
- const framework = await getFrameworkName(options);
449
- if (!resolvedPreviewBuilder?.includes("vite")) {
450
- if (framework.includes("nextjs")) {
451
- log(dedent`
309
+ ), resolvedPreviewBuilder = typeof core?.builder == "string" ? core.builder : core?.builder?.name, framework = await getFrameworkName(options);
310
+ if (!resolvedPreviewBuilder?.includes("vite"))
311
+ return framework.includes("nextjs") && log(import_ts_dedent.dedent`
452
312
  You're using ${framework}, which is a Webpack-based builder. In order to use Storybook Test, with your project, you need to use '@storybook/nextjs-vite', a high performance Vite-based equivalent.
453
313
 
454
314
  Information on how to upgrade here: ${import_picocolors.default.yellow("https://storybook.js.org/docs/get-started/frameworks/nextjs?ref=upgrade#with-vite")}\n
455
- `);
456
- }
457
- return channel;
458
- }
459
- const fsCache = createFileSystemCache({
315
+ `), channel;
316
+ let fsCache = createFileSystemCache({
460
317
  basePath: resolvePathInStorybookCache(ADDON_ID.replace("/", "-")),
461
318
  ns: "storybook",
462
- ttl: 14 * 24 * 60 * 60 * 1e3
319
+ ttl: 336 * 60 * 60 * 1e3
463
320
  // 14 days
464
- });
465
- const cachedState = await fsCache.get("state", {
321
+ }), cachedState = await fsCache.get("state", {
466
322
  config: storeOptions.initialState.config
467
- });
468
- const selectCachedState = /* @__PURE__ */ __name((s) => ({
323
+ }), selectCachedState = (s) => ({
469
324
  config: s.config
470
- }), "selectCachedState");
471
- const store = experimental_UniversalStore.create({
325
+ }), store = experimental_UniversalStore.create({
472
326
  ...storeOptions,
473
327
  initialState: {
474
328
  ...storeOptions.initialState,
475
329
  previewAnnotations: (previewAnnotations ?? []).concat(previewPath ?? []),
476
330
  ...selectCachedState(cachedState)
477
331
  },
478
- leader: true
332
+ leader: !0
479
333
  });
480
334
  store.onStateChange((state, previousState) => {
481
- if (!isEqual(selectCachedState(state), selectCachedState(previousState))) {
482
- fsCache.set("state", selectCachedState(state));
483
- }
335
+ isEqual(selectCachedState(state), selectCachedState(previousState)) || fsCache.set("state", selectCachedState(state));
484
336
  });
485
- const testProviderStore = experimental_getTestProviderStore(ADDON_ID);
486
- store.subscribe("TRIGGER_RUN", (event, eventInfo) => {
487
- testProviderStore.setState("test-provider-state:running");
488
- store.setState((s) => ({
337
+ let testProviderStore = experimental_getTestProviderStore(ADDON_ID);
338
+ if (store.subscribe("TRIGGER_RUN", (event, eventInfo) => {
339
+ testProviderStore.setState("test-provider-state:running"), store.setState((s) => ({
489
340
  ...s,
490
341
  fatalError: void 0
491
- }));
492
- runTestRunner({
342
+ })), runTestRunner({
493
343
  channel,
494
344
  store,
495
345
  initEvent: STORE_CHANNEL_EVENT_NAME,
496
346
  initArgs: [{ event, eventInfo }],
497
347
  options
498
348
  });
499
- });
500
- store.subscribe("TOGGLE_WATCHING", (event, eventInfo) => {
349
+ }), store.subscribe("TOGGLE_WATCHING", (event, eventInfo) => {
501
350
  store.setState((s) => ({
502
351
  ...s,
503
352
  watching: event.payload.to,
@@ -508,109 +357,77 @@ var experimental_serverChannel = /* @__PURE__ */ __name(async (channel, options)
508
357
  coverageSummary: void 0
509
358
  }
510
359
  }
511
- }));
512
- if (event.payload.to) {
513
- runTestRunner({
514
- channel,
515
- store,
516
- initEvent: STORE_CHANNEL_EVENT_NAME,
517
- initArgs: [{ event, eventInfo }],
518
- options
519
- });
520
- }
521
- });
522
- store.subscribe("FATAL_ERROR", (event) => {
523
- const { message, error } = event.payload;
524
- const name = error.name || "Error";
525
- log(`${name}: ${message}`);
526
- if (error.stack) {
527
- log(error.stack);
528
- }
360
+ })), event.payload.to && runTestRunner({
361
+ channel,
362
+ store,
363
+ initEvent: STORE_CHANNEL_EVENT_NAME,
364
+ initArgs: [{ event, eventInfo }],
365
+ options
366
+ });
367
+ }), store.subscribe("FATAL_ERROR", (event) => {
368
+ let { message, error } = event.payload, name = error.name || "Error";
369
+ log(`${name}: ${message}`), error.stack && log(error.stack);
529
370
  function logErrorWithCauses(err) {
530
- if (!err) {
531
- return;
532
- }
533
- log(`Caused by: ${err.name ?? "Error"}: ${err.message}`);
534
- if (err.stack) {
535
- log(err.stack);
536
- }
537
- if (err.cause) {
538
- logErrorWithCauses(err.cause);
539
- }
371
+ err && (log(`Caused by: ${err.name ?? "Error"}: ${err.message}`), err.stack && log(err.stack), err.cause && logErrorWithCauses(err.cause));
540
372
  }
541
- __name(logErrorWithCauses, "logErrorWithCauses");
542
- if (error.cause) {
543
- logErrorWithCauses(error.cause);
544
- }
545
- store.setState((s) => ({
373
+ error.cause && logErrorWithCauses(error.cause), store.setState((s) => ({
546
374
  ...s,
547
375
  fatalError: {
548
376
  message,
549
377
  error
550
378
  }
551
- }));
552
- testProviderStore.setState("test-provider-state:crashed");
553
- });
554
- testProviderStore.onClearAll(() => {
379
+ })), testProviderStore.setState("test-provider-state:crashed");
380
+ }), testProviderStore.onClearAll(() => {
555
381
  store.setState((s) => ({
556
382
  ...s,
557
383
  currentRun: { ...s.currentRun, coverageSummary: void 0, unhandledErrors: [] }
558
384
  }));
559
- });
560
- if (!core.disableTelemetry) {
561
- const enableCrashReports = core.enableCrashReports || options.enableCrashReports;
385
+ }), !core.disableTelemetry) {
386
+ let enableCrashReports = core.enableCrashReports || options.enableCrashReports;
562
387
  channel.on(STORYBOOK_ADDON_TEST_CHANNEL, (event) => {
563
- telemetry("addon-test", {
388
+ event.type !== "test-run-completed" && telemetry("addon-test", {
564
389
  ...event,
565
390
  payload: {
566
391
  ...event.payload,
567
392
  storyId: oneWayHash(event.payload.storyId)
568
393
  }
569
394
  });
570
- });
571
- store.subscribe("TOGGLE_WATCHING", async (event) => {
395
+ }), store.subscribe("TOGGLE_WATCHING", async (event) => {
572
396
  await telemetry("addon-test", {
573
397
  watchMode: event.payload.to
574
398
  });
575
- });
576
- store.subscribe("TEST_RUN_COMPLETED", async (event) => {
577
- const { unhandledErrors, startedAt, finishedAt, ...currentRun } = event.payload;
399
+ }), store.subscribe("TEST_RUN_COMPLETED", async (event) => {
400
+ let { unhandledErrors, startedAt, finishedAt, ...currentRun } = event.payload;
578
401
  await telemetry("addon-test", {
579
402
  ...currentRun,
580
403
  duration: (finishedAt ?? 0) - (startedAt ?? 0),
581
404
  unhandledErrorCount: unhandledErrors.length,
582
405
  ...enableCrashReports && unhandledErrors.length > 0 && {
583
406
  unhandledErrors: unhandledErrors.map((error) => {
584
- const { stacks, ...errorWithoutStacks } = error;
407
+ let { stacks, ...errorWithoutStacks } = error;
585
408
  return sanitizeError(errorWithoutStacks);
586
409
  })
587
410
  }
588
411
  });
589
- });
590
- if (enableCrashReports) {
591
- store.subscribe("FATAL_ERROR", async (event) => {
592
- await telemetry("addon-test", {
593
- fatalError: cleanPaths(event.payload.error.message)
594
- });
412
+ }), enableCrashReports && store.subscribe("FATAL_ERROR", async (event) => {
413
+ await telemetry("addon-test", {
414
+ fatalError: cleanPaths(event.payload.error.message)
595
415
  });
596
- }
416
+ });
597
417
  }
598
418
  return channel;
599
- }, "experimental_serverChannel");
600
- var staticDirs = /* @__PURE__ */ __name(async (values = [], options) => {
601
- if (options.configType === "PRODUCTION") {
419
+ }, staticDirs = async (values = [], options) => {
420
+ if (options.configType === "PRODUCTION")
602
421
  return values;
603
- }
604
- const coverageDirectory = resolvePathInStorybookCache(COVERAGE_DIRECTORY);
605
- await mkdir(coverageDirectory, { recursive: true });
606
- return [
422
+ let coverageDirectory = resolvePathInStorybookCache(COVERAGE_DIRECTORY);
423
+ return await mkdir(coverageDirectory, { recursive: !0 }), [
607
424
  {
608
425
  from: coverageDirectory,
609
426
  to: "/coverage"
610
427
  },
611
428
  ...values
612
429
  ];
613
- }, "staticDirs");
430
+ };
614
431
  export {
615
432
  experimental_serverChannel,
616
433
  staticDirs