@argos-ci/storybook 4.0.3 → 4.0.5
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/test-runner.js +7 -7
- package/dist/vitest-plugin.d.ts +26 -18
- package/dist/vitest-plugin.js +8 -7
- package/dist/vitest.d.ts +5 -17
- package/package.json +5 -5
package/dist/test-runner.js
CHANGED
|
@@ -119,13 +119,13 @@ async function storybookArgosScreenshot(handler, context, options) {
|
|
|
119
119
|
allAttachments.push(...attachments);
|
|
120
120
|
}
|
|
121
121
|
await context.setViewportSize("default");
|
|
122
|
-
|
|
123
|
-
|
|
122
|
+
await setStorybookGlobals({ handler, globals: {} });
|
|
123
|
+
if (context.afterScreenshot) {
|
|
124
|
+
await context.afterScreenshot({
|
|
124
125
|
handler,
|
|
125
126
|
globals: {}
|
|
126
127
|
});
|
|
127
128
|
}
|
|
128
|
-
await setStorybookGlobals({ handler, globals: {} });
|
|
129
129
|
return allAttachments;
|
|
130
130
|
}
|
|
131
131
|
async function setStorybookGlobals(args) {
|
|
@@ -153,13 +153,13 @@ async function setStorybookGlobals(args) {
|
|
|
153
153
|
}
|
|
154
154
|
async function runHooksAndScreenshot(args) {
|
|
155
155
|
const { handler, context, options, globals, metadata } = args;
|
|
156
|
-
|
|
157
|
-
|
|
156
|
+
await setStorybookGlobals({ handler, globals });
|
|
157
|
+
if (context.beforeScreenshot) {
|
|
158
|
+
await context.beforeScreenshot({
|
|
158
159
|
handler,
|
|
159
160
|
globals
|
|
160
161
|
});
|
|
161
162
|
}
|
|
162
|
-
await setStorybookGlobals({ handler, globals });
|
|
163
163
|
const viewportFromGlobals = globals.viewport ? getViewport(context.story.parameters, globals.viewport) : null;
|
|
164
164
|
const viewport = viewportFromGlobals ?? getDefaultViewport(context.story.parameters) ?? "default";
|
|
165
165
|
await context.setViewportSize(viewport);
|
|
@@ -183,7 +183,7 @@ async function argosScreenshot(page, context, options) {
|
|
|
183
183
|
{
|
|
184
184
|
name: storyContext.id,
|
|
185
185
|
playwrightLibraries: ["@storybook/test-runner"],
|
|
186
|
-
|
|
186
|
+
beforeScreenshot: async ({ handler }) => {
|
|
187
187
|
await waitForPageReady(handler);
|
|
188
188
|
},
|
|
189
189
|
story: {
|
package/dist/vitest-plugin.d.ts
CHANGED
|
@@ -11,23 +11,11 @@ type StorybookScreenshotContext<Handler extends Page | Frame> = {
|
|
|
11
11
|
playwrightLibraries: string[];
|
|
12
12
|
test?: MetadataConfig["test"];
|
|
13
13
|
setViewportSize: (size: ViewportSize | "default") => Promise<void>;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* applyGlobals: async ({ frame, globals }) => {
|
|
20
|
-
* await frame.evaluate((globals) => {
|
|
21
|
-
* if (globals.theme === "dark") {
|
|
22
|
-
* document.documentElement.classList.add("dark");
|
|
23
|
-
* } else {
|
|
24
|
-
* document.documentElement.classList.remove("dark");
|
|
25
|
-
* }
|
|
26
|
-
* }, globals);
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
applyGlobals?: (input: {
|
|
14
|
+
beforeScreenshot?: (input: {
|
|
15
|
+
handler: Handler;
|
|
16
|
+
globals: StorybookGlobals;
|
|
17
|
+
}) => Promise<void>;
|
|
18
|
+
afterScreenshot?: (input: {
|
|
31
19
|
handler: Handler;
|
|
32
20
|
globals: StorybookGlobals;
|
|
33
21
|
}) => Promise<void>;
|
|
@@ -44,12 +32,32 @@ type ArgosReporterConfig = UploadParameters;
|
|
|
44
32
|
type ArgosScreenshotCommandArgs = [
|
|
45
33
|
Pick<StorybookScreenshotContext<Frame>, "name" | "story" | "test">
|
|
46
34
|
];
|
|
47
|
-
interface ArgosVitestPluginOptions extends
|
|
35
|
+
interface ArgosVitestPluginOptions extends ArgosReporterConfig, ArgosScreenshotOptions {
|
|
48
36
|
/**
|
|
49
37
|
* Upload the report to Argos.
|
|
50
38
|
* @default true
|
|
51
39
|
*/
|
|
52
40
|
uploadToArgos?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Opportunity to apply globals or other context-specific settings.
|
|
43
|
+
* This can be useful to emulate dark mode or other visual modes.
|
|
44
|
+
* @example
|
|
45
|
+
* ```typescript
|
|
46
|
+
* applyGlobals: async ({ frame, globals }) => {
|
|
47
|
+
* await frame.evaluate((globals) => {
|
|
48
|
+
* if (globals.theme === "dark") {
|
|
49
|
+
* document.documentElement.classList.add("dark");
|
|
50
|
+
* } else {
|
|
51
|
+
* document.documentElement.classList.remove("dark");
|
|
52
|
+
* }
|
|
53
|
+
* }, globals);
|
|
54
|
+
* }
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
applyGlobals?: (input: {
|
|
58
|
+
handler: Frame;
|
|
59
|
+
globals: StorybookGlobals;
|
|
60
|
+
}) => Promise<void>;
|
|
53
61
|
}
|
|
54
62
|
/**
|
|
55
63
|
* Create a command for taking Argos screenshots in Vitest.
|
package/dist/vitest-plugin.js
CHANGED
|
@@ -116,13 +116,13 @@ async function storybookArgosScreenshot(handler, context, options) {
|
|
|
116
116
|
allAttachments.push(...attachments);
|
|
117
117
|
}
|
|
118
118
|
await context.setViewportSize("default");
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
await setStorybookGlobals({ handler, globals: {} });
|
|
120
|
+
if (context.afterScreenshot) {
|
|
121
|
+
await context.afterScreenshot({
|
|
121
122
|
handler,
|
|
122
123
|
globals: {}
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
|
-
await setStorybookGlobals({ handler, globals: {} });
|
|
126
126
|
return allAttachments;
|
|
127
127
|
}
|
|
128
128
|
async function setStorybookGlobals(args) {
|
|
@@ -150,13 +150,13 @@ async function setStorybookGlobals(args) {
|
|
|
150
150
|
}
|
|
151
151
|
async function runHooksAndScreenshot(args) {
|
|
152
152
|
const { handler, context, options, globals, metadata } = args;
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
await setStorybookGlobals({ handler, globals });
|
|
154
|
+
if (context.beforeScreenshot) {
|
|
155
|
+
await context.beforeScreenshot({
|
|
155
156
|
handler,
|
|
156
157
|
globals
|
|
157
158
|
});
|
|
158
159
|
}
|
|
159
|
-
await setStorybookGlobals({ handler, globals });
|
|
160
160
|
const viewportFromGlobals = globals.viewport ? getViewport(context.story.parameters, globals.viewport) : null;
|
|
161
161
|
const viewport = viewportFromGlobals ?? getDefaultViewport(context.story.parameters) ?? "default";
|
|
162
162
|
await context.setViewportSize(viewport);
|
|
@@ -227,7 +227,8 @@ var createArgosScreenshotCommand = (pluginOptions) => {
|
|
|
227
227
|
}
|
|
228
228
|
}, size);
|
|
229
229
|
},
|
|
230
|
-
applyGlobals
|
|
230
|
+
beforeScreenshot: applyGlobals,
|
|
231
|
+
afterScreenshot: applyGlobals
|
|
231
232
|
},
|
|
232
233
|
applyFitToContent(screenshotOptions, fitToContent)
|
|
233
234
|
);
|
package/dist/vitest.d.ts
CHANGED
|
@@ -8,23 +8,11 @@ type StorybookScreenshotContext<Handler extends Page | Frame> = {
|
|
|
8
8
|
playwrightLibraries: string[];
|
|
9
9
|
test?: MetadataConfig["test"];
|
|
10
10
|
setViewportSize: (size: ViewportSize | "default") => Promise<void>;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* applyGlobals: async ({ frame, globals }) => {
|
|
17
|
-
* await frame.evaluate((globals) => {
|
|
18
|
-
* if (globals.theme === "dark") {
|
|
19
|
-
* document.documentElement.classList.add("dark");
|
|
20
|
-
* } else {
|
|
21
|
-
* document.documentElement.classList.remove("dark");
|
|
22
|
-
* }
|
|
23
|
-
* }, globals);
|
|
24
|
-
* }
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
applyGlobals?: (input: {
|
|
11
|
+
beforeScreenshot?: (input: {
|
|
12
|
+
handler: Handler;
|
|
13
|
+
globals: StorybookGlobals;
|
|
14
|
+
}) => Promise<void>;
|
|
15
|
+
afterScreenshot?: (input: {
|
|
28
16
|
handler: Handler;
|
|
29
17
|
globals: StorybookGlobals;
|
|
30
18
|
}) => Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@argos-ci/storybook",
|
|
3
3
|
"description": "Visual testing for Storybook test runner.",
|
|
4
|
-
"version": "4.0.
|
|
4
|
+
"version": "4.0.5",
|
|
5
5
|
"author": "Smooth Code",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -50,12 +50,12 @@
|
|
|
50
50
|
"node": ">=20.0.0"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@argos-ci/playwright": "6.0.
|
|
53
|
+
"@argos-ci/playwright": "6.0.4",
|
|
54
54
|
"@argos-ci/util": "3.0.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@argos-ci/cli": "3.0.
|
|
58
|
-
"@argos-ci/core": "4.0.
|
|
57
|
+
"@argos-ci/cli": "3.0.2",
|
|
58
|
+
"@argos-ci/core": "4.0.2",
|
|
59
59
|
"@argos-ci/util": "workspace:*",
|
|
60
60
|
"@storybook/addon-docs": "^9.1.0",
|
|
61
61
|
"@storybook/addon-links": "^9.1.0",
|
|
@@ -97,5 +97,5 @@
|
|
|
97
97
|
"check-format": "prettier --check --ignore-unknown --ignore-path=./.gitignore --ignore-path=../../.gitignore --ignore-path=../../.prettierignore .",
|
|
98
98
|
"lint": "eslint ."
|
|
99
99
|
},
|
|
100
|
-
"gitHead": "
|
|
100
|
+
"gitHead": "cc53d0519b6e07fd339bd3e200626ec7833fc495"
|
|
101
101
|
}
|