@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.
@@ -119,13 +119,13 @@ async function storybookArgosScreenshot(handler, context, options) {
119
119
  allAttachments.push(...attachments);
120
120
  }
121
121
  await context.setViewportSize("default");
122
- if (context.applyGlobals) {
123
- await context.applyGlobals({
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
- if (context.applyGlobals) {
157
- await context.applyGlobals({
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
- applyGlobals: async ({ handler }) => {
186
+ beforeScreenshot: async ({ handler }) => {
187
187
  await waitForPageReady(handler);
188
188
  },
189
189
  story: {
@@ -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
- * Opportunity to apply globals or other context-specific settings.
16
- * This can be useful to emulate dark mode or other visual modes.
17
- * @example
18
- * ```typescript
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 Pick<StorybookScreenshotContext<Frame>, "applyGlobals">, ArgosReporterConfig, ArgosScreenshotOptions {
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.
@@ -116,13 +116,13 @@ async function storybookArgosScreenshot(handler, context, options) {
116
116
  allAttachments.push(...attachments);
117
117
  }
118
118
  await context.setViewportSize("default");
119
- if (context.applyGlobals) {
120
- await context.applyGlobals({
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
- if (context.applyGlobals) {
154
- await context.applyGlobals({
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
- * Opportunity to apply globals or other context-specific settings.
13
- * This can be useful to emulate dark mode or other visual modes.
14
- * @example
15
- * ```typescript
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.3",
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.3",
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.1",
58
- "@argos-ci/core": "4.0.1",
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": "db55659eaaffc6a3a92655f621be0d6344901da2"
100
+ "gitHead": "cc53d0519b6e07fd339bd3e200626ec7833fc495"
101
101
  }