* refactor: web tests * fix: e2e ratelimits * fix: prefer data-testid * chore: pr feedback
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { Route } from '#lib/route.ts';
|
|
import { factory } from '#test/common/factories.ts';
|
|
import { Mock } from '#test/medium/mocks/mock.ts';
|
|
import { chromium, type FullConfig } from '@playwright/test';
|
|
|
|
const warmUp = async (config: FullConfig) => {
|
|
if (!process.env.PLAYWRIGHT_DEV_SERVER) {
|
|
return;
|
|
}
|
|
const baseURL = config.projects[0].use.baseURL!;
|
|
const browser = await chromium.launch();
|
|
const context = await browser.newContext({ baseURL, serviceWorkers: 'block' });
|
|
await context.addInitScript(() => {
|
|
localStorage.setItem('lang', 'dev');
|
|
});
|
|
const mock = new Mock(context);
|
|
await mock.setup({ baseURL });
|
|
const asset = factory.asset();
|
|
mock.data.addAssets(asset);
|
|
|
|
const page = await context.newPage();
|
|
const routes = [
|
|
Route.photos(),
|
|
Route.viewAsset({ id: asset.id }),
|
|
Route.favorites(),
|
|
Route.archive(),
|
|
Route.trash(),
|
|
Route.albums(),
|
|
Route.memories(),
|
|
Route.search({ originalFileName: 'warm-up' }),
|
|
];
|
|
for (const route of routes) {
|
|
await page.goto(route, { waitUntil: 'networkidle' });
|
|
}
|
|
await browser.close();
|
|
};
|
|
|
|
export default warmUp;
|