test(frontend): Further improvements to UI stability (#18851)
* test(frontend): Further improvements to UI stability * Use `waitForPageReady()` * Override playwright to always be 1.32.2 * Update UI snapshots for `chromium` (1) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update test-runner.ts * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
@ -1,5 +1,5 @@
|
||||
import { toMatchImageSnapshot } from 'jest-image-snapshot'
|
||||
import { getStoryContext, TestRunnerConfig, TestContext } from '@storybook/test-runner'
|
||||
import { getStoryContext, TestRunnerConfig, TestContext, waitForPageReady } from '@storybook/test-runner'
|
||||
import type { Locator, Page, LocatorScreenshotOptions } from '@playwright/test'
|
||||
import type { Mocks } from '~/mocks/utils'
|
||||
import { StoryContext } from '@storybook/types'
|
||||
@ -110,8 +110,7 @@ async function expectStoryToMatchSnapshot(
|
||||
check = expectStoryToMatchComponentSnapshot
|
||||
}
|
||||
|
||||
// Wait for story to load
|
||||
await page.waitForSelector('.sb-show-preparing-story', { state: 'detached' })
|
||||
await waitForPageReady(page)
|
||||
await page.evaluate(() => {
|
||||
// Stop all animations for consistent snapshots
|
||||
document.body.classList.add('storybook-test-runner')
|
||||
@ -123,7 +122,7 @@ async function expectStoryToMatchSnapshot(
|
||||
await page.waitForSelector(waitForSelector)
|
||||
}
|
||||
|
||||
await page.waitForTimeout(400) // Wait for animations to finish
|
||||
await page.waitForTimeout(400) // Wait for effects to finish
|
||||
|
||||
// Wait for all images to load
|
||||
await page.waitForFunction(() =>
|
||||
|
Before Width: | Height: | Size: 590 B After Width: | Height: | Size: 856 B |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
@ -25,6 +25,7 @@ interface BarProps {
|
||||
wrapperWidth: number
|
||||
}
|
||||
type LabelPosition = 'inside' | 'outside'
|
||||
|
||||
export function Bar({
|
||||
percentage: conversionPercentage,
|
||||
name,
|
||||
|
@ -98,7 +98,7 @@ export function FunnelBarGraph({
|
||||
) : null}
|
||||
</header>
|
||||
<div className="funnel-inner-viz">
|
||||
<div className={clsx('funnel-bar-wrapper', { breakdown: isBreakdown })}>
|
||||
<div className={clsx('funnel-bar-wrapper', { breakdown: isBreakdown })} aria-busy={!width}>
|
||||
{!width ? null : isBreakdown ? (
|
||||
<>
|
||||
{step?.nested_breakdown?.map((breakdown, index) => {
|
||||
|
@ -295,6 +295,11 @@
|
||||
"optionalDependencies": {
|
||||
"fsevents": "^2.3.2"
|
||||
},
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"playwright": "1.32.2"
|
||||
}
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{json,yaml,yml}": "prettier --write",
|
||||
"*.{css,scss}": [
|
||||
|
@ -4,6 +4,9 @@ settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
overrides:
|
||||
playwright: 1.32.2
|
||||
|
||||
dependencies:
|
||||
'@ant-design/icons':
|
||||
specifier: ^4.7.0
|
||||
@ -5321,7 +5324,7 @@ packages:
|
||||
jest-serializer-html: 7.1.0
|
||||
jest-watch-typeahead: 2.2.2(jest@29.7.0)
|
||||
node-fetch: 2.6.7
|
||||
playwright: 1.29.2
|
||||
playwright: 1.32.2
|
||||
read-pkg-up: 7.0.1
|
||||
tempy: 1.0.1
|
||||
ts-dedent: 2.2.0
|
||||
@ -15410,25 +15413,19 @@ packages:
|
||||
find-up: 6.3.0
|
||||
dev: true
|
||||
|
||||
/playwright-core@1.29.2:
|
||||
resolution: {integrity: sha512-94QXm4PMgFoHAhlCuoWyaBYKb92yOcGVHdQLoxQ7Wjlc7Flg4aC/jbFW7xMR52OfXMVkWicue4WXE7QEegbIRA==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/playwright-core@1.32.2:
|
||||
resolution: {integrity: sha512-zD7aonO+07kOTthsrCR3YCVnDcqSHIJpdFUtZEMOb6//1Rc7/6mZDRdw+nlzcQiQltOOsiqI3rrSyn/SlyjnJQ==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/playwright@1.29.2:
|
||||
resolution: {integrity: sha512-hKBYJUtdmYzcjdhYDkP9WGtORwwZBBKAW8+Lz7sr0ZMxtJr04ASXVzH5eBWtDkdb0c3LLFsehfPBTRfvlfKJOA==}
|
||||
/playwright@1.32.2:
|
||||
resolution: {integrity: sha512-jHVnXJke0PXpuPszKtk9y1zZSlzO5+2a+aockT/AND0oeXx46FiJEFrafthurglLygVZA+1gEbtUM1C7qtTV+Q==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
playwright-core: 1.29.2
|
||||
playwright-core: 1.32.2
|
||||
dev: true
|
||||
|
||||
/please-upgrade-node@3.2.0:
|
||||
@ -20010,4 +20007,4 @@ packages:
|
||||
|
||||
/zxcvbn@4.4.2:
|
||||
resolution: {integrity: sha512-Bq0B+ixT/DMyG8kgX2xWcI5jUvCwqrMxSFam7m0lAf78nf04hv6lNCsyLYdyYTrCVMqNDY/206K7eExYCeSyUQ==}
|
||||
dev: false
|
||||
dev: false
|
||||
|