Skip to content

Commit 43fe85f

Browse files
chore: percy visual regression tests (#526)
* adding percy with snapshot exclusions * removing chromatic visual tests from github actions
1 parent 5b23231 commit 43fe85f

File tree

4 files changed

+115
-2
lines changed

4 files changed

+115
-2
lines changed

.github/workflows/storybook.yml

+32
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,38 @@ jobs:
8080
"pnpm --filter @explorer-1/vue-storybook start" \
8181
"pnpm --filter @explorer-1/vue-storybook test:ci"
8282
83+
visual-tests:
84+
needs: [build, a11y-tests]
85+
timeout-minutes: 30
86+
runs-on: ubuntu-latest
87+
steps:
88+
- name: Checkout 🛎️
89+
uses: actions/checkout@v4
90+
91+
- name: Setup pnpm
92+
uses: pnpm/action-setup@v4
93+
94+
- name: Set up Node ⬢
95+
uses: actions/setup-node@v4
96+
with:
97+
node-version-file: '.nvmrc'
98+
cache: 'pnpm'
99+
100+
- name: Install dependencies 🧱
101+
run: pnpm i
102+
103+
- name: Download storybook build
104+
uses: actions/download-artifact@v3
105+
with:
106+
name: storybook
107+
path: apps/vue-storybook/storybook_compiled
108+
109+
- name: Run Percy
110+
id: run-percy
111+
env:
112+
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
113+
run: pnpm --filter @explorer-1/vue-storybook percy
114+
83115
publish:
84116
needs: [build, a11y-tests]
85117
timeout-minutes: 30

apps/vue-storybook/.percy.yml

+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
version: 2
2+
snapshot:
3+
widths:
4+
- 375
5+
- 1280
6+
minHeight: 1024
7+
percyCSS: ''
8+
disableShadowDOM: false
9+
enableJavascript: true
10+
enableLayout: true
11+
storybook:
12+
# args: {}
13+
# globals: {}
14+
# queryParams: {}
15+
# waitForTimeout: 30000
16+
# waitForSelector: ''
17+
# additionalSnapshots: []
18+
include: [
19+
'Foundations/Typography: Text Styles',
20+
'Foundations/Themes: Dynamic Tokens',
21+
'Foundations/Logos/LogoTribrand: Logo Inline SVG',
22+
'Foundations/Grid and Layout: Full Page Example',
23+
# TODO: add a story that has all icons in it
24+
'Navigation/*',
25+
'Components/*',
26+
'Mixins/*',
27+
'Templates/*'
28+
]
29+
exclude:
30+
[
31+
'Docs',
32+
'Overview',
33+
'Navigation/Headers/WWW/NavDesktop: Dropdown',
34+
'Navigation/Headers/WWW/NavMobile: With Secondary Nav',
35+
'Navigation/Headers/WWW/NavMobile: With Tertiary Nav',
36+
'Navigation/Headers/WWW/NavMobile: Dropdown Secondary',
37+
'Navigation/Headers/EDU/NavMobile',
38+
'Navigation/Elements',
39+
'Components/Base/BaseHeading',
40+
'Components/Base/BaseAudio: BaseAudio',
41+
'Components/Base/BaseImage: Lazy Loading',
42+
'Components/Base/BaseImagePlaceholder: With Image',
43+
'Components/Base/BaseModal: Base Story',
44+
'Components/Base/BaseModal: Custom Trigger',
45+
'Components/Base/BaseModal: Nested',
46+
'Components/Base/BaseSwimlane: Base Story',
47+
'Components/Base/BaseVideo: Base Story',
48+
'Components/Blocks/BlockCircleImageCard: Base Story',
49+
'Components/Blocks/BlockCta: Base Story',
50+
'Components/Blocks/BlockIframeEmbed: Lazy Load',
51+
'Components/Blocks/BlockImageCarousel/BlockImageCarouselItem: BlockImageCarouselItem',
52+
'Components/Blocks/BlockLinkCarousel: Two Items',
53+
'Components/Blocks/BlockLinkCarousel: Multiple Carousels',
54+
'Components/Heroes/Small: Video',
55+
'Snapshot found: Components/Heroes/Small: HeroMedium (compact)',
56+
'Components/WWW/Homepage/HomepageCarousel: Carousel with shuffled items',
57+
'Components/WWW/Homepage/HomepageCarousel: Carousel with few slides',
58+
'Components/WWW/Homepage/HomepageCarousel/HomepageCarouselItem: Single Item',
59+
'Components/WWW/Homepage/HomepageCarousel/HomepageCarouselItem: With Video',
60+
'Components/WWW/Homepage/HomepageMissionsCarousel: Item',
61+
'Components/WWW/MissionDetail/MissionDetailHero: Ecostress',
62+
'Components/WWW/MissionDetail/MissionDetailHero: Jason 3',
63+
'Components/WWW/MissionDetail/MissionDetailHero: Oco 2',
64+
'Components/WWW/MissionDetail/MissionHighlights: Mars 1',
65+
'Components/WWW/MissionDetail/MissionHighlights: Mars 2',
66+
'Components/WWW/MissionDetail/MissionHighlights: Moon',
67+
'Components/WWW/MissionDetail/MissionHighlights: Jupiter',
68+
'Components/WWW/TopicDetail/MissionCarousel/TopicDetailMissionCarouselItem: Base Story',
69+
'Components/WWW/TopicDetail/TopicDetailMore: No List',
70+
'Components/WWW/TopicDetail/TopicDetailMore: No Spotlight',
71+
'Components/WWW/TopicDetail/TopicDetailMore: Short List',
72+
'Mixins/MixinCarousel: BaseCarousel'
73+
]

apps/vue-storybook/package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
"prepare:fontcss": "cp ./node_modules/@explorer-1/common/src/scss/_fonts.scss ./public/css/font-face.css",
2020
"storybook": "storybook dev -c .storybook -p 6006 --ci",
2121
"build": "storybook build -c .storybook -o storybook_compiled NODE_ENV='production'",
22-
"percy": "percy storybook http://localhost:6006",
23-
"percy:dry-run": "percy storybook http://localhost:6006 --dry-run",
22+
"percy": "percy storybook ./storybook_compiled",
23+
"percy:dry-run": "percy storybook ./storybook_compiled --dry-run",
2424
"lint:app": "eslint './.storybook/**/*.@(js|ts)'",
2525
"lint:app:fix": "eslint './.storybook/**/*.@(js|ts)' --fix",
2626
"lint": "eslint './../../packages/vue/src/**/*.stories.@(js|ts|mdx)' && pnpm lint:app",
@@ -49,6 +49,8 @@
4949
"@explorer-1/html": "workspace:*",
5050
"@explorer-1/prettier-config": "workspace:*",
5151
"@explorer-1/tsconfig": "workspace:*",
52+
"@percy/cli": "^1.28.6",
53+
"@percy/storybook": "^6.0.0",
5254
"@rushstack/eslint-patch": "^1.2.0",
5355
"@storybook/addon-a11y": "^8.2.6",
5456
"@storybook/addon-essentials": "^8.2.6",

pnpm-lock.yaml

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)