@storybook/addon-vitest 0.0.0-pr-32717-sha-47ba2989 → 0.0.0-pr-32795-sha-81cf1f23

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