From bb0811a60c690ee798cd8a93b6084d06b7110fc9 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Sat, 20 Jun 2026 02:39:36 +0800 Subject: [PATCH] test: add sync plugin E2E tests --- plugins/sync/e2e/sync-settings.spec.js | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plugins/sync/e2e/sync-settings.spec.js diff --git a/plugins/sync/e2e/sync-settings.spec.js b/plugins/sync/e2e/sync-settings.spec.js new file mode 100644 index 0000000..a01c9d7 --- /dev/null +++ b/plugins/sync/e2e/sync-settings.spec.js @@ -0,0 +1,29 @@ +import { test, expect } from '@playwright/test'; + +test.describe('Sync Plugin Settings', () => { + test('shows setup form when not configured', async ({ page }) => { + await page.goto('/'); + await page.click('[data-plugin="verstak.sync"]'); + await page.click('[data-action="settings"]'); + + await expect(page.locator('.sync-setup')).toBeVisible(); + await expect(page.locator('input[placeholder="https://example.com"]')).toBeVisible(); + }); + + test('shows status when configured', async ({ page }) => { + await page.goto('/'); + await page.evaluate(() => { + localStorage.setItem('verstak-sync-settings', JSON.stringify({ + serverUrl: 'https://sync.example.com', + lastStatus: 'connected', + deviceName: 'test-device' + })); + }); + + await page.click('[data-plugin="verstak.sync"]'); + await page.click('[data-action="settings"]'); + + await expect(page.locator('.sync-info')).toBeVisible(); + await expect(page.locator('.status-ok')).toBeVisible(); + }); +});