* fix(mobile): align Expo SDK 57 patch deps for install --check Bump @expo/ui, expo, expo-constants, expo-linking, expo-modules-core, expo-notifications, expo-router, and expo-updates to the versions expo install --check expects after upstream patch releases. Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> * ci(e2e): harden flaky waits and trim Playwright artifact uploads Chart fixture reloads and shell readiness can exceed 30s on loaded self-hosted runners. Align timeouts with the rest of the suite and wait for gallery mount before counting species. Stop uploading per-test trace folders to Actions (HTML report only) with 1-day retention so quota errors stay non-blocking. Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> * evo-deploy: probe health before checking the timeout With a short timeout the clock could tick past it before the first probe, so a healthy service was reported as timed out. Probe first, then check the clock. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wy1md9QE1ayJbDCwJ4vAQs --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: cynarAI <cynarAI@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
34 lines
1.6 KiB
TypeScript
34 lines
1.6 KiB
TypeScript
import { expect, test } from "@playwright/test";
|
|
import { captureScreenshot } from "./helpers";
|
|
|
|
for (const theme of ["light", "dark"] as const) {
|
|
test(`Oo looks render every species with the Oo eyes (${theme})`, async ({ page }, testInfo) => {
|
|
await page.goto(`/e2e/fixtures/oo-gallery.html?theme=${theme}`);
|
|
const gallery = page.getByTestId("oo-gallery");
|
|
await expect(gallery).toBeVisible({ timeout: 60_000 });
|
|
await expect(gallery.locator("svg[data-oo-species]").first()).toBeVisible({
|
|
timeout: 90_000,
|
|
});
|
|
await expect(gallery.locator("svg[data-oo-species]")).toHaveCount(12);
|
|
for (const species of ["cat", "dog", "bunny", "bear", "robot", "ghost", "frog", "penguin"]) {
|
|
await expect(gallery.locator(`svg[data-oo-species="${species}"]`).first()).toBeVisible();
|
|
}
|
|
await expect(gallery.locator('[data-part="eye-big"]')).toHaveCount(12);
|
|
const sizes = page.getByTestId("oo-sizes");
|
|
await expect(
|
|
sizes.locator("svg[data-oo-species]").first().locator('[data-part="arm-left"]'),
|
|
).toHaveCount(0);
|
|
await expect(
|
|
sizes.locator("svg[data-oo-species]").last().locator('[data-part="arm-left"]'),
|
|
).toHaveCount(1);
|
|
await captureScreenshot(page, testInfo, `oo-gallery-${theme}`);
|
|
});
|
|
}
|
|
|
|
test("Oo keeps blinking and moving while visible", async ({ page }) => {
|
|
await page.goto("/e2e/fixtures/avatar-motion.html");
|
|
const rig = page.locator('.rakazo-bot-avatar svg[data-oo-species] [data-part="rig"]');
|
|
const first = await rig.getAttribute("transform");
|
|
await expect.poll(() => rig.getAttribute("transform")).not.toBe(first);
|
|
});
|