Skip to content

Commit 9dc94d7

Browse files
committed
[test-chromatic] try decorator solution
1 parent ad06ef7 commit 9dc94d7

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

__docs__/wonder-blocks-tabs/navigation-tabs-variants.stories.tsx

+24-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {Meta, StoryObj} from "@storybook/react";
1+
import type {Meta, StoryFn, StoryObj} from "@storybook/react";
22
import * as React from "react";
33

44
import {StyleSheet} from "aphrodite";
@@ -168,6 +168,19 @@ const columns = [
168168

169169
type Story = StoryObj<typeof NavigationTabs>;
170170

171+
const createPseudoStatesDecorator = (state: string) => (Story: StoryFn) => {
172+
React.useEffect(() => {
173+
// Apply classes directly after a short delay
174+
const timer = setTimeout(() => {
175+
document?.querySelectorAll("a").forEach((a) => {
176+
a.classList.add(`pseudo-${state}`);
177+
});
178+
}, 200);
179+
return () => clearTimeout(timer);
180+
}, []);
181+
return <Story />;
182+
};
183+
171184
/**
172185
* The following stories are used to generate the pseudo states for the Switch
173186
* component. This is only used for visual testing in Chromatic.
@@ -212,39 +225,45 @@ export const Default: Story = {};
212225

213226
export const Hover: Story = {
214227
parameters: {
215-
pseudo: {hover: true},
228+
// pseudo: {hover: true},
216229
chromatic: {
217230
// TODO(WB-1917): Temporarily disabled since snapshots with
218231
// NavigationTabs and pseudo states are flaky. We still get state
219232
// style coverage in NavigationTabItem AllVariants stories
220233
// disableSnapshot: true,
221234
},
222235
},
236+
decorators: [createPseudoStatesDecorator("hover")],
223237
};
224238

225239
export const Focus: Story = {
226240
parameters: {
227-
pseudo: {focusVisible: true},
241+
// pseudo: {focusVisible: true},
228242
chromatic: {
229243
// TODO(WB-1917): Temporarily disabled since snapshots with
230244
// NavigationTabs and pseudo states are flaky. We still get state
231245
// style coverage in NavigationTabItem AllVariants stories
232246
// disableSnapshot: true,
233247
},
234248
},
249+
decorators: [createPseudoStatesDecorator("focus-visible")],
235250
};
236251

237252
export const HoverFocus: Story = {
238253
name: "Hover + Focus",
239254
parameters: {
240-
pseudo: {hover: true, focusVisible: true},
255+
// pseudo: {hover: true, focusVisible: true},
241256
chromatic: {
242257
// TODO(WB-1917): Temporarily disabled since snapshots with
243258
// NavigationTabs and pseudo states are flaky. We still get state
244259
// style coverage in NavigationTabItem AllVariants stories
245260
// disableSnapshot: true,
246261
},
247262
},
263+
decorators: [
264+
createPseudoStatesDecorator("hover"),
265+
createPseudoStatesDecorator("focus-visible"),
266+
],
248267
};
249268

250269
export const Active: Story = {
@@ -257,6 +276,7 @@ export const Active: Story = {
257276
// disableSnapshot: true,
258277
},
259278
},
279+
decorators: [createPseudoStatesDecorator("active")],
260280
};
261281

262282
export const Zoom: Story = {

0 commit comments

Comments
 (0)