Add Playwright UI smoke tests against real OpenIDM server in CI#145
Merged
Conversation
…o-class, replace waitForTimeout Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/b3cc3436-4667-46ad-b70e-f85325e287da Co-authored-by: vharseko <[email protected]>
Copilot
AI
changed the title
[WIP] Add Playwright-based UI smoke tests to build workflow
Add Playwright UI smoke tests against real OpenIDM server in CI
Apr 7, 2026
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: vharseko <[email protected]>
…re/Manage and Dashboard/Profile) Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/bd67e169-9bce-45ba-9f1a-cd2274022d78 Co-authored-by: vharseko <[email protected]>
5 tasks
…it conditions Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/74ebc12a-2e9a-4d00-82d5-1717b0a9f042 Co-authored-by: vharseko <[email protected]>
…ncrease test timeout to 180s Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/b5b7b5c0-c2b2-4806-b9fc-780da9cedfde Co-authored-by: vharseko <[email protected]>
…toggles Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/328b8e20-d521-49f3-879f-782281038a29 Co-authored-by: vharseko <[email protected]>
…ertNoErrors on settings page Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/b554bf14-9a15-488a-b4a7-79163a0f7f41 Co-authored-by: vharseko <[email protected]>
… settings test check Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenIDM/sessions/96743c49-4c15-4306-9550-4b864f5f4d34 Co-authored-by: vharseko <[email protected]>
2 tasks
…vice 404 fix, and SettingsView cleanup (#147) Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: vharseko <[email protected]>
Updated copyright and license information in build.yml
Updated copyright and license information in Dockerfile.
Updated copyright and license information in Dockerfile-alpine.
maximthomas
approved these changes
Apr 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Portions copyright 2024-2026 3A Systems, LLC.matching 383d12d (the handleAction changes from 8ab8504 were already present)Original prompt
Goal
Add Playwright-based UI smoke tests to the CI
build.ymlworkflow that test the OpenIDM UI against a real running OpenIDM server onlocalhost:8080. The existing QUnit tests only run against mocks — these new tests will verify the UI works end-to-end with a real backend.What to add
1. Create
e2e/playwright.config.mjs2. Create
e2e/ui-smoke-test.spec.mjsThe test file should cover these scenarios, all running against a real OpenIDM at
http://localhost:8080:Admin UI login page loads —
GET /admin/returns 200, the#loginand#passwordinput fields appear (these are the standard ForgeRock commons-ui LoginView selectors).Admin UI login with openidm-admin succeeds — fill
#loginwithopenidm-admin, fill#passwordwithopenidm-admin, click the submit button ([type=submit]or.btn-primary), and verify the login form disappears and page content loads (e.g.#content,.navbar, or#wrapperbecomes visible).Enduser UI login page loads —
GET /returns 200,#loginand#passwordfields appear.REST API ping is accessible —
GET /openidm/info/pingwith headersX-OpenIDM-Username: openidm-adminandX-OpenIDM-Password: openidm-adminreturns 200 withstate: "ACTIVE_READY".REST API config endpoint is accessible —
GET /openidm/config/ui/configurationwith the same auth headers returns 200 and has aconfigurationproperty in the response.Admin UI Dashboard loads after login — after logging in, navigate to
#dashboard/and verify no.alert-dangererror elements are visible.No JavaScript console errors on Admin UI load — listen for
pageerrorevents, load/admin/, wait for it to settle, and assert no critical JS errors occurred (filter out favicon/404 noise).Use
process.env.OPENIDM_URL || "http://localhost:8080"as the base URL throughout. Use timeouts of 30s forwaitForSelectorsince OpenIDM UI loads can be slow.3. Modify
.github/workflows/build.ymlAdd a new step after the existing "Test on Unix" step (which already starts OpenIDM and waits for "OpenIDM ready") and before the "Test on Windows" step. The new step should:
if: runner.os == 'Linux'Important: Do NOT modify the existing "Test on Unix" or "Test on Windows" steps. Do NOT remove or change the existing QUnit test steps from PR #144 if they are present on the branch. Just add the new Playwright step as described.
4. Do NOT add
e2e/node_modulesore2e/package-lock.json— they should be generated at CI timepackage.jsonor any existingpackage.jsonThe following is the prior conversation context from the user's chat exploration (may be truncated):
User: я остановил сервер на порту localhost:8080/openidm и тест прошел, это говорит о том, что тесты остались на моках
Assistant:
Вы правы — это важное наблюдение. Если тесты проходят даже когда сервер на
localhost:8080/openidmостановлен, это подтверждает, что QUnit тесты вopenidm-uiполностью работают на моках (mocks/stubs) и не делают реальных HTTP-запросов к бэкенду.Это на самом деле хорошо для CI — означает, что:
Это типичный паттерн для UI unit-тестов — они используют
sinon.jsили подобные библиотеки для перехвата XHR/fetch запросов и возврата предопределённых ответов.Хотите, чтобы я обновил PR #144, учитывая это? Раз серверная часть не нужна, CI-конфигурация может быть проще — достаточно только headless-браузера и Node.js окружения для запуска QUnit тестов.
User: нет, я хочу в build.yml протестировать UI на реальном localhost:8080/openidm
Assistant:
Понял — вы хотите в CI workflow (
build.yml) запускать UI тесты против **реального работающего ...This pull request was created from Copilot chat.