From 2234529a202359da4f66c3f1431de18511812548 Mon Sep 17 00:00:00 2001 From: github-ops Date: Sat, 20 Jun 2026 11:31:57 +0000 Subject: [PATCH] Fix secret kind field visibility --- apps/ui/css/pages.css | 4 +++ apps/ui/tests/e2e/secrets.spec.js | 41 ++++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/apps/ui/css/pages.css b/apps/ui/css/pages.css index 2bbf1cc..48da75e 100644 --- a/apps/ui/css/pages.css +++ b/apps/ui/css/pages.css @@ -3,6 +3,10 @@ Used by: api-keys, logs, usage, settings ══════════════════════════════════════════════════ */ +[hidden] { + display: none !important; +} + /* ── Dropdown divider (used in navbar and elsewhere) ── */ .dropdown-divider { height: 1px; diff --git a/apps/ui/tests/e2e/secrets.spec.js b/apps/ui/tests/e2e/secrets.spec.js index a2eb440..b415601 100644 --- a/apps/ui/tests/e2e/secrets.spec.js +++ b/apps/ui/tests/e2e/secrets.spec.js @@ -1,5 +1,5 @@ const { test, expect } = require('@playwright/test'); -const { browserJson, getCurrentWorkspace, login, uniqueName } = require('./helpers'); +const { browserJson, getCurrentWorkspace, localized, login, uniqueName } = require('./helpers'); test('created workspace secret renders styled table actions', async ({ page }) => { const secretName = uniqueName('ui_secret'); @@ -26,3 +26,42 @@ test('created workspace secret renders styled table actions', async ({ page }) = await expect(row.locator('[data-testid="secret-delete-action"]')).toHaveClass(/btn-danger/); await expect(row.locator('[data-testid="secret-delete-action"]')).toHaveClass(/table-action-btn/); }); + +test('secret modal shows fields for selected secret kind only', async ({ page }) => { + await login(page); + await page.goto('/secrets'); + + await page.locator('[data-testid="secret-create-button"]').click(); + await expect(page.locator('[data-testid="secret-create-modal"]')).toBeVisible(); + + const stringField = page.locator('[data-kind-field="string"]'); + const basicField = page.locator('[data-kind-field="basic"]'); + const jsonField = page.locator('[data-kind-field="json"]'); + const kindSelect = page.locator('[data-testid="secret-kind-select"]'); + + await expect(stringField).toBeVisible(); + await expect(basicField).toBeHidden(); + await expect(jsonField).toBeHidden(); + + await kindSelect.selectOption('username_password'); + await expect(stringField).toBeHidden(); + await expect(basicField).toBeVisible(); + await expect(jsonField).toBeHidden(); + + await kindSelect.selectOption('header'); + await expect(stringField).toBeVisible(); + await expect(page.locator('#secret-string-label')).toHaveText(localized('Header value', 'Значение заголовка')); + await expect(basicField).toBeHidden(); + await expect(jsonField).toBeHidden(); + + await kindSelect.selectOption('generic'); + await expect(stringField).toBeHidden(); + await expect(basicField).toBeHidden(); + await expect(jsonField).toBeVisible(); + + await kindSelect.selectOption('token'); + await expect(stringField).toBeVisible(); + await expect(page.locator('#secret-string-label')).toHaveText(localized('Token value', 'Значение токена')); + await expect(basicField).toBeHidden(); + await expect(jsonField).toBeHidden(); +});