mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
update: screenshot tests.
This commit is contained in:
@@ -7,6 +7,11 @@ const setMockSettings = async (page, settings) => {
|
||||
}, settings);
|
||||
};
|
||||
|
||||
const isUpgradeMode = async (page) => {
|
||||
const value = await page.locator('body').getAttribute('data-upgrade');
|
||||
return value === 'true';
|
||||
};
|
||||
|
||||
const openAdvancedSettings = async (page) => {
|
||||
const toggle = page.locator('.accordion-toggle');
|
||||
if (await toggle.isVisible()) {
|
||||
@@ -21,6 +26,10 @@ test.describe('Appwrite Web Installer - Screenshots', () => {
|
||||
await page.waitForSelector('#hostname', { state: 'visible', timeout: 10000 });
|
||||
await page.waitForTimeout(300);
|
||||
|
||||
if (await isUpgradeMode(page)) {
|
||||
test.skip(true, 'Install flow screenshots are not available in upgrade mode.');
|
||||
}
|
||||
|
||||
await expect(page.locator('h1')).toContainText('Setup your app');
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/step-1-setup.png', fullPage: true });
|
||||
|
||||
@@ -62,6 +71,9 @@ test.describe('Appwrite Web Installer - Screenshots', () => {
|
||||
test('capture validation states', async ({ page }) => {
|
||||
await page.goto('/');
|
||||
await page.waitForLoadState('networkidle');
|
||||
if (await isUpgradeMode(page)) {
|
||||
test.skip(true, 'Install validation screenshots are not available in upgrade mode.');
|
||||
}
|
||||
await page.waitForSelector('#hostname', { state: 'visible', timeout: 10000 });
|
||||
|
||||
await page.locator('#hostname').fill('');
|
||||
@@ -79,6 +91,9 @@ test.describe('Appwrite Web Installer - Screenshots', () => {
|
||||
test('capture account validation states', async ({ page }) => {
|
||||
await page.goto('/?step=3');
|
||||
await page.waitForLoadState('networkidle');
|
||||
if (await isUpgradeMode(page)) {
|
||||
test.skip(true, 'Account step is not available in upgrade mode.');
|
||||
}
|
||||
await page.waitForSelector('#account-name', { state: 'visible', timeout: 10000 });
|
||||
|
||||
await page.locator('#account-name').fill('');
|
||||
@@ -96,20 +111,29 @@ test.describe('Appwrite Web Installer - Screenshots', () => {
|
||||
await page.goto('/?step=4');
|
||||
await page.waitForLoadState('networkidle');
|
||||
|
||||
await page.waitForSelector('button:has-text("Install")', { state: 'visible', timeout: 10000 });
|
||||
await page.locator('button:has-text("Install")').click();
|
||||
const upgrade = await isUpgradeMode(page);
|
||||
const actionLabel = upgrade ? 'Update' : 'Install';
|
||||
const screenshotName = upgrade ? 'upgrade-error' : 'install-error';
|
||||
|
||||
await page.waitForSelector(`button:has-text("${actionLabel}")`, { state: 'visible', timeout: 10000 });
|
||||
await page.locator(`button:has-text("${actionLabel}")`).click();
|
||||
await page.waitForSelector('.install-row[data-status="error"]', { timeout: 15000 });
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/install-error.png', fullPage: true });
|
||||
await page.screenshot({ path: `tests/playwright/screenshots/${screenshotName}.png`, fullPage: true });
|
||||
});
|
||||
|
||||
test('capture toast state (mock)', async ({ page }) => {
|
||||
await setMockSettings(page, { toast: true });
|
||||
await page.goto('/?step=4');
|
||||
await page.waitForLoadState('networkidle');
|
||||
await page.waitForSelector('button:has-text("Install")', { state: 'visible', timeout: 10000 });
|
||||
await page.locator('button:has-text("Install")').click();
|
||||
const upgrade = await isUpgradeMode(page);
|
||||
const actionLabel = upgrade ? 'Update' : 'Install';
|
||||
const screenshotName = upgrade ? 'toast-session-expired-upgrade' : 'toast-session-expired';
|
||||
await page.waitForSelector(`button:has-text("${actionLabel}")`, { state: 'visible', timeout: 10000 });
|
||||
await page.locator(`button:has-text("${actionLabel}")`).click();
|
||||
await page.waitForSelector('.installer-toast', { state: 'visible', timeout: 10000 });
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/toast-session-expired.png', fullPage: true });
|
||||
await page.waitForSelector('.installer-toast:not(.is-entering)', { state: 'visible', timeout: 10000 });
|
||||
await page.waitForTimeout(450);
|
||||
await page.screenshot({ path: `tests/playwright/screenshots/${screenshotName}.png`, fullPage: true });
|
||||
});
|
||||
|
||||
test('capture upgrade flow screenshots (mock upgrade)', async ({ page }) => {
|
||||
@@ -121,6 +145,20 @@ test.describe('Appwrite Web Installer - Screenshots', () => {
|
||||
await expect(page.locator('h1')).toContainText(/Update your app/i);
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/upgrade-step-1-setup.png', fullPage: true });
|
||||
|
||||
// Upgrade: advanced settings open
|
||||
await openAdvancedSettings(page);
|
||||
await page.waitForTimeout(200);
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/upgrade-step-1-advanced.png', fullPage: true });
|
||||
|
||||
// Upgrade: locked database tooltip
|
||||
const dbTooltipTrigger = page.locator('.selector-card.has-tooltip').first();
|
||||
if (await dbTooltipTrigger.isVisible()) {
|
||||
await dbTooltipTrigger.hover();
|
||||
await page.waitForSelector('.tooltip-db-locked', { state: 'visible', timeout: 5000 });
|
||||
await page.waitForTimeout(200);
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/upgrade-step-1-db-tooltip.png', fullPage: true });
|
||||
}
|
||||
|
||||
await page.locator('button:has-text("Next")').click();
|
||||
await page.waitForSelector('[data-review-value="appDomain"]', { state: 'visible', timeout: 10000 });
|
||||
await page.screenshot({ path: 'tests/playwright/screenshots/upgrade-step-4-review.png', fullPage: true });
|
||||
|
||||
Reference in New Issue
Block a user