Skip to content

Commit ece8155

Browse files
Merge pull request #30265 from storybookjs/version-non-patch-from-8.5.0-beta.11
Release: Minor 8.5.0
2 parents d8fe93a + 4af18eb commit ece8155

File tree

46 files changed

+4748
-3544
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+4748
-3544
lines changed

CHANGELOG.md

Lines changed: 141 additions & 0 deletions
Large diffs are not rendered by default.

code/.storybook/vitest.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export default mergeConfig(
2424
plugins: [
2525
import('@storybook/experimental-addon-test/vitest-plugin').then(({ storybookTest }) =>
2626
storybookTest({
27-
configDir: process.cwd(),
27+
configDir: __dirname,
2828
tags: {
2929
include: ['vitest'],
3030
},

code/addons/interactions/preset.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1 @@
1-
const { checkActionsLoaded } = require('./dist/preset');
2-
3-
function previewAnnotations(entry = [], options) {
4-
checkActionsLoaded(options.configDir);
5-
return entry;
6-
}
7-
8-
module.exports = {
9-
previewAnnotations,
10-
};
1+
module.exports = require('./dist/preset');

code/addons/interactions/src/preset.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { isAbsolute, join } from 'node:path';
22

33
import { checkAddonOrder, serverRequire } from 'storybook/internal/common';
44

5-
export const checkActionsLoaded = (configDir: string) => {
5+
export function previewAnnotations(entry: string[] = [], options: { configDir: string }) {
66
checkAddonOrder({
77
before: {
88
name: '@storybook/addon-actions',
@@ -12,12 +12,13 @@ export const checkActionsLoaded = (configDir: string) => {
1212
name: '@storybook/addon-interactions',
1313
inEssentials: false,
1414
},
15-
configFile: isAbsolute(configDir)
16-
? join(configDir, 'main')
17-
: join(process.cwd(), configDir, 'main'),
15+
configFile: isAbsolute(options.configDir)
16+
? join(options.configDir, 'main')
17+
: join(process.cwd(), options.configDir, 'main'),
1818
getConfig: (configFile) => serverRequire(configFile),
1919
});
20-
};
20+
return entry;
21+
}
2122

2223
// This annotation is read by addon-test, so it can throw an error if both addons are used
2324
export const ADDON_INTERACTIONS_IN_USE = true;

code/addons/test/package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@
9595
"@types/istanbul-lib-report": "^3.0.3",
9696
"@types/node": "^22.0.0",
9797
"@types/semver": "^7",
98-
"@vitest/browser": "^2.1.3",
99-
"@vitest/runner": "^2.1.3",
98+
"@vitest/browser": "3.0.0-beta.4",
99+
"@vitest/runner": "3.0.0-beta.4",
100100
"ansi-to-html": "^0.7.2",
101101
"boxen": "^8.0.1",
102102
"es-toolkit": "^1.22.0",
@@ -116,13 +116,13 @@
116116
"tree-kill": "^1.2.2",
117117
"ts-dedent": "^2.2.0",
118118
"typescript": "^5.3.2",
119-
"vitest": "^2.1.3"
119+
"vitest": "3.0.0-beta.4"
120120
},
121121
"peerDependencies": {
122-
"@vitest/browser": "^2.1.1",
123-
"@vitest/runner": "^2.1.1",
122+
"@vitest/browser": "^2.1.1 || ^3.0.0",
123+
"@vitest/runner": "^2.1.1 || ^3.0.0",
124124
"storybook": "workspace:^",
125-
"vitest": "^2.1.1"
125+
"vitest": "^2.1.1 || ^3.0.0"
126126
},
127127
"peerDependenciesMeta": {
128128
"@vitest/browser": {

code/addons/test/src/node/reporter.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { TaskState } from 'vitest';
22
import type { Vitest } from 'vitest/node';
3+
import * as vitestNode from 'vitest/node';
34
import { type Reporter } from 'vitest/reporters';
45

56
import type {
@@ -12,6 +13,7 @@ import type { API_StatusUpdate } from '@storybook/types';
1213

1314
import type { Suite } from '@vitest/runner';
1415
import { throttle } from 'es-toolkit';
16+
import { satisfies } from 'semver';
1517

1618
import { TEST_PROVIDER_ID } from '../constants';
1719
import type { TestManager } from './test-manager';
@@ -50,8 +52,15 @@ const statusMap: Record<TaskState, TestStatus> = {
5052
run: 'pending',
5153
skip: 'skipped',
5254
todo: 'skipped',
55+
queued: 'pending',
5356
};
5457

58+
const vitestVersion = vitestNode.version;
59+
60+
const isVitest3OrLater = vitestVersion
61+
? satisfies(vitestVersion, '>=3.0.0-beta.3', { includePrerelease: true })
62+
: false;
63+
5564
export class StorybookReporter implements Reporter {
5665
testStatusData: API_StatusUpdate = {};
5766

@@ -213,7 +222,10 @@ export class StorybookReporter implements Reporter {
213222
async onFinished() {
214223
const unhandledErrors = this.ctx.state.getUnhandledErrors();
215224

216-
const isCancelled = this.ctx.isCancelling;
225+
const isCancelled = isVitest3OrLater
226+
? this.testManager.vitestManager.isCancelling
227+
: // @ts-expect-error isCancelling is private in Vitest 3.
228+
this.ctx.isCancelling;
217229
const report = await this.getProgressReport(Date.now());
218230

219231
const testSuiteFailures = report.details.testResults.filter(

code/addons/test/src/node/test-manager.test.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,21 @@ const vitest = vi.hoisted(() => ({
1919
cancelCurrentRun: vi.fn(),
2020
globTestSpecs: vi.fn(),
2121
getModuleProjects: vi.fn(() => []),
22-
configOverride: {
23-
actualTestNamePattern: undefined,
24-
get testNamePattern() {
25-
return this.actualTestNamePattern!;
22+
setGlobalTestNamePattern: setTestNamePattern,
23+
vite: {
24+
watcher: {
25+
removeAllListeners: vi.fn(),
26+
on: vi.fn(),
2627
},
27-
set testNamePattern(value: string) {
28-
setTestNamePattern(value);
29-
// @ts-expect-error Ignore for testing
30-
this.actualTestNamePattern = value;
28+
moduleGraph: {
29+
getModulesByFile: () => [],
30+
invalidateModule: vi.fn(),
3131
},
3232
},
3333
}));
3434

35-
vi.mock('vitest/node', () => ({
35+
vi.mock('vitest/node', async (importOriginal) => ({
36+
...(await importOriginal()),
3637
createVitest: vi.fn(() => Promise.resolve(vitest)),
3738
}));
3839
const createVitest = vi.mocked(actualCreateVitest);
@@ -137,7 +138,6 @@ describe('TestManager', () => {
137138
storyIds: [],
138139
});
139140
expect(vitest.runFiles).toHaveBeenCalledWith([], true);
140-
expect(vitest.configOverride.testNamePattern).toBeUndefined();
141141

142142
await testManager.handleRunRequest({
143143
providerId: TEST_PROVIDER_ID,

0 commit comments

Comments
 (0)