From 3ce41d50e86c5a607ccb95e87b4101d9425b6b96 Mon Sep 17 00:00:00 2001 From: Imants Date: Mon, 1 Dec 2025 13:51:10 +0200 Subject: [PATCH 1/8] fix: add missing import for common/direction in manage.scss --- src/css/manage.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/css/manage.scss b/src/css/manage.scss index 0509be08..f3a4a373 100644 --- a/src/css/manage.scss +++ b/src/css/manage.scss @@ -7,6 +7,7 @@ @use 'common/theme'; @use 'common/badges'; @use 'common/switch'; +@use 'common/direction'; @use 'common/select'; @use 'manage/cloud'; From 4ed4cf4d8738aba7fee7a66042fd145b6b3ccc05 Mon Sep 17 00:00:00 2001 From: Imants Date: Mon, 1 Dec 2025 13:51:13 +0200 Subject: [PATCH 2/8] test: enhance toggle activation checks in snippets list page --- tests/e2e/code-snippets-list.spec.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/e2e/code-snippets-list.spec.ts b/tests/e2e/code-snippets-list.spec.ts index 07ecedf5..dbeb513e 100644 --- a/tests/e2e/code-snippets-list.spec.ts +++ b/tests/e2e/code-snippets-list.spec.ts @@ -28,6 +28,12 @@ test.describe('Code Snippets List Page Actions', () => { await expect(toggleSwitch).toHaveAttribute('title', 'Deactivate') + // Check that the toggle is rendered to the right (active) + const activeTransform = await toggleSwitch.evaluate(el => { + return window.getComputedStyle(el, '::before').transform + }) + expect(activeTransform).not.toBe('none') + await toggleSwitch.click() await page.waitForLoadState('networkidle') @@ -35,6 +41,12 @@ test.describe('Code Snippets List Page Actions', () => { const updatedToggle = updatedRow.locator('a.snippet-activation-switch') await expect(updatedToggle).toHaveAttribute('title', 'Activate') + // Check that the toggle is rendered to the left (inactive) + const inactiveTransform = await updatedToggle.evaluate(el => { + return window.getComputedStyle(el, '::before').transform + }) + expect(inactiveTransform).toBe('none') + await updatedToggle.click() await page.waitForLoadState('networkidle') From a02ed711c2422117275d1ee05a7bd1a603ba4d0b Mon Sep 17 00:00:00 2001 From: Imants Date: Mon, 1 Dec 2025 14:08:34 +0200 Subject: [PATCH 3/8] fix: update toggle activation check to ensure correct transformation value --- tests/e2e/code-snippets-list.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/code-snippets-list.spec.ts b/tests/e2e/code-snippets-list.spec.ts index dbeb513e..cf89978f 100644 --- a/tests/e2e/code-snippets-list.spec.ts +++ b/tests/e2e/code-snippets-list.spec.ts @@ -32,7 +32,7 @@ test.describe('Code Snippets List Page Actions', () => { const activeTransform = await toggleSwitch.evaluate(el => { return window.getComputedStyle(el, '::before').transform }) - expect(activeTransform).not.toBe('none') + expect(activeTransform).toBe('matrix(1, 0, 0, 1, 13, 0)') await toggleSwitch.click() await page.waitForLoadState('networkidle') From 18edd76267c5407631585e9673656656ff04dfcb Mon Sep 17 00:00:00 2001 From: Louis Wolmarans Date: Tue, 2 Dec 2025 14:22:03 +0200 Subject: [PATCH 4/8] add screenshots --- tests/e2e/code-snippets-list.spec.ts | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/tests/e2e/code-snippets-list.spec.ts b/tests/e2e/code-snippets-list.spec.ts index cf89978f..1b01bd06 100644 --- a/tests/e2e/code-snippets-list.spec.ts +++ b/tests/e2e/code-snippets-list.spec.ts @@ -29,10 +29,7 @@ test.describe('Code Snippets List Page Actions', () => { await expect(toggleSwitch).toHaveAttribute('title', 'Deactivate') // Check that the toggle is rendered to the right (active) - const activeTransform = await toggleSwitch.evaluate(el => { - return window.getComputedStyle(el, '::before').transform - }) - expect(activeTransform).toBe('matrix(1, 0, 0, 1, 13, 0)') + await expect(snippetRow).toHaveScreenshot('snippet-row-active.png') await toggleSwitch.click() await page.waitForLoadState('networkidle') @@ -42,10 +39,7 @@ test.describe('Code Snippets List Page Actions', () => { await expect(updatedToggle).toHaveAttribute('title', 'Activate') // Check that the toggle is rendered to the left (inactive) - const inactiveTransform = await updatedToggle.evaluate(el => { - return window.getComputedStyle(el, '::before').transform - }) - expect(inactiveTransform).toBe('none') + await expect(updatedRow).toHaveScreenshot('snippet-row-inactive.png') await updatedToggle.click() await page.waitForLoadState('networkidle') From 9538e307c632502f63393402da44c44b852389cd Mon Sep 17 00:00:00 2001 From: Louis Wolmarans Date: Tue, 2 Dec 2025 14:24:10 +0200 Subject: [PATCH 5/8] add maxDiffPixels in playwright config --- tests/playwright/playwright.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/playwright/playwright.config.ts b/tests/playwright/playwright.config.ts index cde090e2..04b4e6f0 100644 --- a/tests/playwright/playwright.config.ts +++ b/tests/playwright/playwright.config.ts @@ -66,6 +66,7 @@ export default defineConfig({ timeout: 30000, expect: { - timeout: 10000 + timeout: 10000, + toHaveScreenshot: { maxDiffPixels: 100 } } }) From d083f7a3e73b3b3bf65f832d65200bc538031253 Mon Sep 17 00:00:00 2001 From: Louis Wolmarans Date: Tue, 2 Dec 2025 14:32:17 +0200 Subject: [PATCH 6/8] add screenshots --- .../snippet-row-active-linux.png | Bin 0 -> 7438 bytes .../snippet-row-inactive-linux.png | Bin 0 -> 7594 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png create mode 100644 tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png diff --git a/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png b/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..6df3b3462851f29c41b8241002dc2f8b97b1864e GIT binary patch literal 7438 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 LwUo*fUVr>A29&UU literal 0 HcmV?d00001 diff --git a/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png b/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..7e9e376dbc09730e50f7a413b6766699f0c4941e GIT binary patch literal 7594 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 B@F)NP literal 0 HcmV?d00001 From 6b3a42bb3a663c54ddec7c7a90f6ca125dfbfcdd Mon Sep 17 00:00:00 2001 From: Louis Wolmarans Date: Tue, 2 Dec 2025 14:39:02 +0200 Subject: [PATCH 7/8] update screenshot paths --- ...w-active-chromium-file-based-snippets-linux.png} | Bin ...inactive-chromium-file-based-snippets-linux.png} | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename tests/e2e/code-snippets-list.spec.ts-snapshots/{snippet-row-active-linux.png => snippet-row-active-chromium-file-based-snippets-linux.png} (100%) rename tests/e2e/code-snippets-list.spec.ts-snapshots/{snippet-row-inactive-linux.png => snippet-row-inactive-chromium-file-based-snippets-linux.png} (100%) diff --git a/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png b/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-chromium-file-based-snippets-linux.png similarity index 100% rename from tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png rename to tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-chromium-file-based-snippets-linux.png diff --git a/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png b/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-chromium-file-based-snippets-linux.png similarity index 100% rename from tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png rename to tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-chromium-file-based-snippets-linux.png From 9de3e039d933a4702b47dd81b7b148f0343752c2 Mon Sep 17 00:00:00 2001 From: Louis Wolmarans Date: Tue, 2 Dec 2025 14:51:27 +0200 Subject: [PATCH 8/8] update screenshot paths --- ...ppets-linux.png => snippet-row-active-linux.png} | Bin ...ets-linux.png => snippet-row-inactive-linux.png} | Bin tests/playwright/playwright.config.ts | 1 + 3 files changed, 1 insertion(+) rename tests/e2e/code-snippets-list.spec.ts-snapshots/{snippet-row-active-chromium-file-based-snippets-linux.png => snippet-row-active-linux.png} (100%) rename tests/e2e/code-snippets-list.spec.ts-snapshots/{snippet-row-inactive-chromium-file-based-snippets-linux.png => snippet-row-inactive-linux.png} (100%) diff --git a/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-chromium-file-based-snippets-linux.png b/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png similarity index 100% rename from tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-chromium-file-based-snippets-linux.png rename to tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-active-linux.png diff --git a/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-chromium-file-based-snippets-linux.png b/tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png similarity index 100% rename from tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-chromium-file-based-snippets-linux.png rename to tests/e2e/code-snippets-list.spec.ts-snapshots/snippet-row-inactive-linux.png diff --git a/tests/playwright/playwright.config.ts b/tests/playwright/playwright.config.ts index 04b4e6f0..10c2e67f 100644 --- a/tests/playwright/playwright.config.ts +++ b/tests/playwright/playwright.config.ts @@ -10,6 +10,7 @@ const WORKERS = 1 */ export default defineConfig({ testDir: '../e2e', + snapshotPathTemplate: '{testDir}/{testFileDir}/{testFileName}-snapshots/{arg}-{platform}{ext}', fullyParallel: true, forbidOnly: !!process.env.CI, retries: process.env.CI ? RETRIES : 0,