From 405cad461774e525c6e3805c410dcfebf00a4fda Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 2 Sep 2026 20:18:12 -0700 Subject: [PATCH] Add a couple e2e tests just in case --- src-ui/e2e/backend.py | 11 ++++++ .../e2e/document-list/document-list.spec.ts | 38 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/src-ui/e2e/backend.py b/src-ui/e2e/backend.py index 693c713ed..e706b0f8a 100644 --- a/src-ui/e2e/backend.py +++ b/src-ui/e2e/backend.py @@ -48,6 +48,7 @@ def seed_database() -> None: from django.utils import timezone from documents.models import Correspondent + from documents.models import CustomField from documents.models import Document from documents.models import DocumentType from documents.models import Note @@ -81,6 +82,16 @@ def seed_database() -> None: path="e2e/{created_year}/{title}", owner=admin, ) + CustomField.objects.create( + name="Test Select Field", + data_type=CustomField.FieldDataType.SELECT, + extra_data={ + "select_options": [ + {"id": "abc123", "label": "Alpha"}, + {"id": "def456", "label": "Beta"}, + ], + }, + ) today = timezone.localdate() documents = [] diff --git a/src-ui/e2e/document-list/document-list.spec.ts b/src-ui/e2e/document-list/document-list.spec.ts index 45a0c1976..5365b4826 100644 --- a/src-ui/e2e/document-list/document-list.spec.ts +++ b/src-ui/e2e/document-list/document-list.spec.ts @@ -207,3 +207,41 @@ test('bulk edit', async ({ page }) => { await page.getByRole('button', { name: 'Confirm' }).click() await bulkEditPromise }) + +test('permissions dropdown stays open when selecting a user', async ({ + page, +}) => { + await page.goto('/documents') + await page.getByRole('button', { name: 'Permissions' }).click() + const dropdown = page.locator( + 'pngx-permissions-filter-dropdown .dropdown-menu' + ) + await expect(dropdown).toBeVisible() + await dropdown.locator('ng-select').click() + await page.getByRole('option', { name: 'playwright' }).click() + await expect(dropdown).toBeVisible() + await expect(dropdown.locator('.ng-value-label')).toHaveText('playwright') +}) + +test('custom fields query dropdown stays open when building a query', async ({ + page, +}) => { + await page.goto('/documents') + await page.getByRole('button', { name: 'Custom fields' }).click() + const dropdown = page.locator( + 'pngx-custom-fields-query-dropdown .dropdown-menu' + ) + await expect(dropdown).toBeVisible() + + // field picker + await dropdown.locator('ng-select').first().click() + await page.getByRole('option', { name: 'Test Select Field' }).click() + await expect(dropdown).toBeVisible() + + // value picker, shown once the operator takes a list of options + await dropdown.locator('select').first().selectOption({ label: 'In' }) + await dropdown.locator('ng-select').last().click() + await page.getByRole('option', { name: 'Alpha' }).click() + await expect(dropdown).toBeVisible() + await expect(dropdown.locator('.ng-value-label').last()).toHaveText('Alpha') +})