chore(ci): remove CLA check and fix milestones E2E form validation#1255
Merged
Conversation
added 2 commits
April 17, 2026 08:42
The CLA workflow is optional (not a required status check on beta or main — branch rulesets require only Quality Gates / E2E Gates). As the sole contributor, the self-signed CLA provides no value. - Delete CLA.md, .github/workflows/cla.yml, .github/cla/signatures.json - Strip stale "+ CLA" mentions from /develop, /epic-close, /release skill docs
…rror banner HTML5 required on the title/targetDate inputs blocked form submission before the onSubmit handler could call setError(...), so the custom error banner (role=alert) never rendered. E2E Scenarios 6/7 on the milestone create page asserted on a null banner text and failed across desktop/tablet/mobile. Adding noValidate to both the create form and the detail-page edit form lets the JS validation handler run and populate the errorBanner as the tests expect. The required attribute stays for screen-reader hinting.
Contributor
|
Thank you for your submission! We require all contributors to sign our Contributor License Agreement before we can accept your contribution. I have read the CLA Document and I hereby sign the CLA Frank Steiler seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. |
added 7 commits
April 17, 2026 09:11
The SubNav component forced role='list' on the container <div> and
role='listitem' on each NavLink. Overriding the default role of an
<a> to 'listitem' makes it invisible to role=link accessibility queries,
breaking several E2E tests that navigate via getByRole('link', ...)
after the #1188 PageLayout refactor (invoices Budget subnav, settings
subnav across desktop/tablet/mobile).
Removing both role attributes lets NavLink expose its native anchor
role. Update SubNav unit tests to assert link semantics accordingly.
- MilestonesPage.getMilestoneTitles: the cardCell class does not exist
on DataTableCard (which uses cardRow/cardValue). Scope the card
iterator to top-level .card children (class^='card_') and read the
title from .cardValue. Fixes the 3 mobile milestones scenarios (API
create, delete confirm, delete cancel).
- invoices.spec.ts Scenario 2: pending summary count is returned from
the same API response as the list, but a brief interleaving window
after invoice creation causes the list render to show stale counts.
Poll the summary count with expect.poll instead of a one-shot read.
- invoices.spec.ts Scenario 7: DataTable renders both the desktop
table and the mobile cards simultaneously and toggles visibility
via CSS media queries. locator('.invoiceLink').first() picked the
hidden desktop <a> on mobile. Add :visible so the currently shown
link is clicked.
- area-filter.spec.ts Scenario 1: the Area column is defaultVisible
false, so its in-header Filter by Area button is never rendered.
Drop the secondary assertion on the filter-button visibility; the
core URL-based areaId filter behaviour is still fully validated.
[class*=emptyState] can match unrelated elements with classes like emptyStateTitle/emptyStateDescription. Scope to the CSS-module-hashed prefix emptyState_ so only the EmptyState component wrapper is picked up. Aimed at the tablet filter-empty-state flake on shard 12.
After the SubNav role override was dropped, tests that relied on role=listitem on nav tabs need to use role=link. Covers: - budget/vendors.spec.ts (Vendors tab) - budget/budget-sources.spec.ts (Sources tab) - budget/budget-overview.spec.ts (four budget tabs) - budget/subsidy-programs.spec.ts (Subsidies tab) - admin/backup-restore.spec.ts (Backups tab) + remove outdated comment - i18n/i18n.spec.ts (Auftragnehmer tab)
- MilestoneCreatePage.test.tsx: the back-link regex `/back|milestones/i`
now collides with the SubNav Milestones tab (both role=link after the
SubNav role override was dropped). Tighten to `/←\s*milestones/i`.
- invoices.spec.ts Scenario 1 (Budget subnav tabs): scope
getByRole('link', 'Overview') to the Budget <nav> landmark so it
does not collide with the project-logo link's aria-label
("Go to project overview").
- invoices.spec.ts Scenario 2 (Create invoice pending count): the
create form defaults status to 'quotation' now (previously 'pending').
Explicitly select 'pending' on the status select so the test's
pending-summary assertion actually reflects the created invoice.
- settings-manage.spec.ts: same scoping fix for Profile / Manage
SubNav tabs.
Same collision as MilestoneCreatePage after the SubNav role change: the /back|milestones/i regex now matches both the header back link and the SubNav Milestones tab. Tighten to /←\s*milestones/i.
- MilestoneDetailPage.test.tsx (not-found state): the not-found branch renders without SubNav and uses 'milestones.detail.backLink' which translates to 'Back to Milestones', not the header-format arrow. Restore the broader 'back to milestones' regex for this case. - settings-manage.spec.ts (subnav test): add 'exact: true' so the 'Manage' link query does not collide with 'User Management' tab.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Test plan