test: cover the footer Privacy link from DataSpaceFrontend#447 - #32
Merged
Merged
Conversation
Matches the <a> itself rather than its inner <span>, so a test can read @href -- the sibling footer locators target the span and cannot.
TC_HOM_15 asserts the link is present and points at /privacy. TC_HOM_16 follows it and asserts the destination actually renders, since a link to a 404 would satisfy TC_HOM_15 on its own.
saqibmanan
marked this pull request as ready for review
September 9, 2026 08:33
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.
What triggered this
DataSpaceFrontendPR #447 "Added Privacy in Footer", merged intodev2026-09-08 ase5e300a.What actually changed (from the diff, not the title)
One file,
app/[locale]/dashboard/components/main-footer.tsx, +7/-0:Privacylink was added to the footer's link row.getPlatformPageUrl('/privacy', locale)on a collaborative subdomain, plain/privacyotherwise.MainFooteris rendered bydashboard/layout.tsx,(user)/layout.tsx, andlogin/page.tsx— so this footer is not homepage-only, and both/and/dashboardserve it on dev. Verified the link is in the server-rendered HTML on both, so it doesn't depend on hydration.Coverage added
TC_HOM_15_privacy_link_in_footersmokehrefends in/privacyTC_HOM_16_privacy_page_renderssmoke/privacyand renders real content, not a 404Plus one locator,
Locators.PRIVACY_LINK.Why two. TC_HOM_15 alone is satisfied by a link pointing at a dead route — the realistic failure mode here is the route breaking, not the anchor disappearing. TC_HOM_16 is the one that would actually catch that.
Why
smokeand nothing else. This is a link and a static page. There is no API surface, no auth, no state change, and nothing performance-sensitive —functional/regression/apiwould all be padding. Only the non-subdomain href branch is covered; the collaborative-subdomain branch needs a collaborative subdomain to exercise and is called out as a gap below.Proof the tests can fail
Assertions flipped to a value that cannot match (
/privacy-NOPE), run, then reverted.Red:
Green (reverted, against dev):
Gaps found — flagged, not fixed here
tests/consumer/smoke/test_components.pyhas a large block of dead tests. Line 57 opens a'''that closes at line 122, soTC_HOM_02throughTC_HOM_09sit inside a string literal and are never collected.pytest --collect-onlyon that file returnsTC_HOM_01and then jumps straight toTC_SEC_01. A second such block spans 135–195.This means the existing footer coverage (
TC_HOM_07about section,TC_HOM_08sitemap,TC_HOM_09contact) does not run today. The new tests were deliberately placed above line 57 so they are actually collected.Those dead tests would also fail if simply un-commented. They call
wait_and_capture(driver, tc_id, By.XPATH, Locators.X)whileLocators.Xis already a(By.XPATH, "...")tuple — the liveTC_HOM_01unpacks it correctly with*Locators.ICON. The new tests follow the working form. Reviving that block is its own piece of work, not folded in here.Collaborative-subdomain href branch is uncovered.
isCollaborativeSubdomainneeds a collaborative subdomain to exercise; not reachable from the current base URL.No Page Object for the footer. Footer selectors live directly in
locators/consumer/locators.pywith tests using thedriverfixture — consistent with how every other footer test in this file works, so the new tests match local convention rather than introducing a one-off pattern.Note on when this actually runs
This targets
CI, the branch that executes in this repo —devis currently 5 days behind andmaintakes docs. Chosen from where recent test PRs (#24, #26–#29) actually landed.Draft. Generated by the
pr-test-syncskill's first live run; every claim above was verified against dev rather than inferred.