This commit fixes layout shifts that occur on card list part of the page when the page is initially loaded. - Resolve issue where card list starts with minimal width, leading to jumps in UI until correct width is calculated on medium and big screens. - Dispose of existing `ResizeObserver` properly before creating a new one. This prevents leaks and incorrect width calculations if `containerElement` changes. - Throttle resize events to minimize width/height calculation changes, enhancing performance and reducing the chances for layout shifts. Supporting CI/CD improvements: - Enable artifact upload in CI/CD even if E2E tests fail. - Distinguish uploaded artifacts by operating system for clarity.
32 lines
956 B
TypeScript
32 lines
956 B
TypeScript
import { defineConfig } from 'cypress';
|
|
import ViteConfig from './vite.config';
|
|
import cypressDirs from './cypress-dirs.json' assert { type: 'json' };
|
|
|
|
export default defineConfig({
|
|
fixturesFolder: `${cypressDirs.base}/fixtures`,
|
|
screenshotsFolder: cypressDirs.screenshots,
|
|
|
|
video: true,
|
|
videosFolder: cypressDirs.videos,
|
|
|
|
e2e: {
|
|
baseUrl: `http://localhost:${getApplicationPort()}/`,
|
|
specPattern: `${cypressDirs.base}/**/*.cy.{js,jsx,ts,tsx}`, // Default: cypress/e2e/**/*.cy.{js,jsx,ts,tsx}
|
|
supportFile: `${cypressDirs.base}/support/e2e.ts`,
|
|
},
|
|
|
|
/*
|
|
Disabling Chrome's web security to allow for faster DOM queries to access DOM earlier than
|
|
`cy.get()`. It bypasses the usual same-origin policy constraints
|
|
*/
|
|
chromeWebSecurity: false,
|
|
});
|
|
|
|
function getApplicationPort(): number {
|
|
const port = ViteConfig.server?.port;
|
|
if (port === undefined) {
|
|
throw new Error('Unknown application port');
|
|
}
|
|
return port;
|
|
}
|