Skip to content

Commit 4720a97

Browse files
committed
wip
1 parent 8c39869 commit 4720a97

24 files changed

+1693
-1372
lines changed

.storybook/test-runner.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { toMatchImageSnapshot } from 'jest-image-snapshot';
22

3-
import { getStoryContext, waitForPageReady } from '../dist';
4-
import type { TestRunnerConfig } from '../dist';
3+
import { getStoryContext, waitForPageReady } from '../dist/index.js';
4+
import type { TestRunnerConfig } from '../dist/index.js';
55

66
const snapshotsDir = process.env.SNAPSHOTS_DIR || '__snapshots__';
77
const customSnapshotsDir = `${process.cwd()}/${snapshotsDir}`;

jest.config.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
module.exports = {
1+
export default {
22
testMatch: ['**/*.test.ts'],
33
moduleNameMapper: {
4-
'@storybook/test-runner/playwright/global-setup': '<rootDir>/playwright/global-setup',
5-
'@storybook/test-runner/playwright/global-teardown': '<rootDir>/playwright/global-teardown',
4+
'@storybook/test-runner/playwright/global-setup': '<rootDir>/playwright/global-setup.js',
5+
'@storybook/test-runner/playwright/global-teardown': '<rootDir>/playwright/global-teardown.js',
66
'@storybook/test-runner/playwright/custom-environment':
7-
'<rootDir>/playwright/custom-environment',
8-
'@storybook/test-runner/playwright/jest-setup': '<rootDir>/playwright/jest-setup',
9-
'@storybook/test-runner/playwright/transform': '<rootDir>/playwright/transform',
7+
'<rootDir>/playwright/custom-environment.js',
8+
'@storybook/test-runner/playwright/jest-setup': '<rootDir>/playwright/jest-setup.js',
9+
'@storybook/test-runner/playwright/transform': '<rootDir>/playwright/transform.js',
1010
},
1111
};

package.json

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "@storybook/test-runner",
33
"version": "0.22.1",
44
"description": "Test runner for Storybook stories",
5+
"type": "module",
56
"keywords": [
67
"storybook-addons",
78
"test",
@@ -16,11 +17,11 @@
1617
},
1718
"license": "MIT",
1819
"author": "shilman",
19-
"main": "dist/index.js",
20+
"main": "dist/index.mjs",
2021
"module": "dist/index.mjs",
2122
"types": "dist/index.d.ts",
2223
"bin": {
23-
"test-storybook": "./dist/test-storybook.js"
24+
"test-storybook": "./dist/test-storybook.mjs"
2425
},
2526
"files": [
2627
"dist",
@@ -55,18 +56,20 @@
5556
"@babel/generator": "^7.22.5",
5657
"@babel/template": "^7.22.5",
5758
"@babel/types": "^7.22.5",
58-
"@jest/types": "^29.6.3",
59+
"@jest/types": "^30.0.1",
5960
"@swc/core": "^1.5.22",
60-
"@swc/jest": "^0.2.23",
61+
"@swc/jest": "^0.2.38",
62+
"@types/node-fetch": "^2.6.12",
6163
"expect-playwright": "^0.8.0",
62-
"jest": "^29.6.4",
63-
"jest-circus": "^29.6.4",
64-
"jest-environment-node": "^29.6.4",
64+
"jest": "^30.0.4",
65+
"jest-circus": "^30.0.4",
66+
"jest-environment-node": "^30.0.4",
6567
"jest-junit": "^16.0.0",
6668
"jest-playwright-preset": "^4.0.0",
67-
"jest-runner": "^29.6.4",
69+
"jest-runner": "^30.0.4",
6870
"jest-serializer-html": "^7.1.0",
69-
"jest-watch-typeahead": "^2.0.0",
71+
"jest-watch-typeahead": "^3.0.1",
72+
"node-fetch": "^3.3.2",
7073
"nyc": "^15.1.0",
7174
"playwright": "^1.14.0"
7275
},
@@ -80,12 +83,11 @@
8083
"@storybook/addon-coverage": "^1.0.0",
8184
"@storybook/addon-docs": "0.0.0-pr-31819-sha-8b752a73",
8285
"@storybook/react-vite": "0.0.0-pr-31819-sha-8b752a73",
83-
"@types/jest": "^29.0.0",
84-
"@types/node": "^16.4.1",
85-
"@types/node-fetch": "^2.6.11",
86+
"@types/jest": "^30.0.0",
87+
"@types/node": "^24.0.10",
8688
"@vitejs/plugin-react": "^4.0.3",
8789
"auto": "^11.1.6",
88-
"babel-jest": "^29.0.0",
90+
"babel-jest": "^30.0.4",
8991
"babel-loader": "^8.1.0",
9092
"babel-plugin-istanbul": "^6.1.1",
9193
"can-bind-to-host": "^1.1.1",
@@ -95,7 +97,6 @@
9597
"husky": "^8.0.0",
9698
"jest-image-snapshot": "^6.2.0",
9799
"lint-staged": "^13.0.3",
98-
"node-fetch": "^2",
99100
"pkg-up": "^5.0.0",
100101
"prettier": "^2.8.1",
101102
"react": "^17.0.1",
@@ -104,9 +105,9 @@
104105
"storybook": "0.0.0-pr-31819-sha-8b752a73",
105106
"tempy": "^1.0.1",
106107
"ts-dedent": "^2.0.0",
107-
"ts-jest": "^29.0.0",
108-
"tsup": "^6.5.0",
109-
"typescript": "~4.9.4",
108+
"ts-jest": "^29.4.0",
109+
"tsup": "^8.5.0",
110+
"typescript": "^5.8.3",
110111
"vite": "^6.3.2",
111112
"wait-on": "^7.2.0"
112113
},

playwright/custom-environment.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
const { setupPage } = require('../dist');
2-
3-
const PlaywrightEnvironment = require('jest-playwright-preset/lib/PlaywrightEnvironment').default;
1+
import { setupPage } from '../dist/index.js';
2+
import PlaywrightEnvironment from 'jest-playwright-preset/lib/PlaywrightEnvironment.js';
43

54
class CustomEnvironment extends PlaywrightEnvironment {
65
async setup() {
@@ -17,4 +16,4 @@ class CustomEnvironment extends PlaywrightEnvironment {
1716
}
1817
}
1918

20-
module.exports = CustomEnvironment;
19+
export default CustomEnvironment;

playwright/global-setup.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
// global-setup.js
2-
const { globalSetup: playwrightGlobalSetup } = require('jest-playwright-preset');
1+
// global-setup.mjs
2+
import { globalSetup as playwrightGlobalSetup } from 'jest-playwright-preset';
33

4-
module.exports = async function globalSetup(globalConfig) {
4+
export default async function globalSetup(globalConfig) {
55
return playwrightGlobalSetup(globalConfig);
6-
};
6+
}

playwright/global-teardown.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
// global-teardown.js
2-
const { globalTeardown: playwrightGlobalTeardown } = require('jest-playwright-preset');
1+
// global-teardown.mjs
2+
import { globalTeardown as playwrightGlobalTeardown } from 'jest-playwright-preset';
33

4-
module.exports = async function globalTeardown(globalConfig) {
4+
export default async function globalTeardown(globalConfig) {
55
// Your global teardown
66
await playwrightGlobalTeardown(globalConfig);
7-
};
7+
}

playwright/jest-setup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { getTestRunnerConfig, setPreVisit, setPostVisit, setupPage } = require('../dist');
1+
import { getTestRunnerConfig, setPreVisit, setPostVisit, setupPage } from '../dist/index.js';
22

33
const testRunnerConfig = getTestRunnerConfig(process.env.STORYBOOK_CONFIG_DIR);
44
if (testRunnerConfig) {

playwright/test-runner-jest.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
const { getJestConfig } = require('../dist');
1+
import { getJestConfig } from '../dist/index.js';
22

33
// The default Jest configuration comes from @storybook/test-runner
44
const testRunnerConfig = getJestConfig();
55

66
/**
77
* @type {import('@jest/types').Config.InitialOptions}
88
*/
9-
module.exports = {
9+
export default {
1010
...testRunnerConfig,
1111
/** Add your own overrides below, and make sure
1212
* to merge testRunnerConfig properties with your own

playwright/transform.js

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,39 @@
1-
const { transformSync: swcTransform } = require('@swc/core');
2-
const { transformPlaywright } = require('../dist');
1+
import { transform as swcTransform } from '@swc/core';
2+
import { transformPlaywright } from '../dist/index.js';
33

4-
module.exports = {
5-
process(src, filename) {
6-
const csfTest = transformPlaywright(src, filename);
7-
8-
const result = swcTransform(csfTest, {
4+
// Only export async version - force Jest to use it
5+
async function processAsync(src, filename) {
6+
console.log('processAsync filename', filename);
7+
try {
8+
const csfTest = await transformPlaywright(src, filename);
9+
console.log({ csfTest });
10+
const result = await swcTransform(csfTest, {
911
filename,
12+
isModule: true,
1013
module: {
11-
type: 'commonjs',
14+
type: 'es6',
15+
},
16+
jsc: {
17+
parser: {
18+
syntax: 'typescript',
19+
tsx: true, // Enable JSX support
20+
},
21+
target: 'es2015', // Set target for compatibility
1222
},
1323
});
1424

1525
return { code: result ? result.code : src };
26+
} catch (error) {
27+
console.error('Transform error:', error);
28+
return { code: src };
29+
}
30+
}
31+
32+
// Export only the async version
33+
export default {
34+
process: (src, filename) => {
35+
console.log('processSync filename', filename);
36+
return { code: src };
1637
},
38+
processAsync,
1739
};

src/config/jest-playwright.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ describe('getJestConfig', () => {
1212
transform: {
1313
'^.+\\.(story|stories)\\.[jt]sx?$': `${path.dirname(
1414
require.resolve('@storybook/test-runner/playwright/transform')
15-
)}/transform.js`,
15+
)}/transform.mjs`,
1616
'^.+\\.[jt]sx?$': path.resolve('../test-runner/node_modules/@swc/jest'),
1717
},
1818
snapshotSerializers: [path.resolve('../test-runner/node_modules/jest-serializer-html')],
@@ -30,11 +30,11 @@ describe('getJestConfig', () => {
3030
watchPathIgnorePatterns: ['coverage', '.nyc_output', '.cache'],
3131
roots: undefined,
3232
runner: path.resolve('../test-runner/node_modules/jest-playwright-preset/runner.js'),
33-
globalSetup: path.resolve('playwright/global-setup.js'),
34-
globalTeardown: path.resolve('playwright/global-teardown.js'),
35-
testEnvironment: path.resolve('playwright/custom-environment.js'),
33+
globalSetup: path.resolve('playwright/global-setup.mjs'),
34+
globalTeardown: path.resolve('playwright/global-teardown.mjs'),
35+
testEnvironment: path.resolve('playwright/custom-environment.mjs'),
3636
setupFilesAfterEnv: [
37-
path.resolve('playwright/jest-setup.js'),
37+
path.resolve('playwright/jest-setup.mjs'),
3838
path.resolve('../test-runner/node_modules/expect-playwright/lib'),
3939
path.resolve('../test-runner/node_modules/jest-playwright-preset/lib/extends.js'),
4040
],
@@ -82,7 +82,7 @@ describe('getJestConfig', () => {
8282
transform: {
8383
'^.+\\.(story|stories)\\.[jt]sx?$': `${path.dirname(
8484
require.resolve('@storybook/test-runner/playwright/transform')
85-
)}/transform.js`,
85+
)}/transform.mjs`,
8686
'^.+\\.[jt]sx?$': path.dirname(require.resolve('@swc/jest')),
8787
},
8888
snapshotSerializers: [path.dirname(require.resolve('jest-serializer-html'))],

0 commit comments

Comments
 (0)