[THROWAWAY] feature-review self-test: #545 secondary link as button - #551
[THROWAWAY] feature-review self-test: #545 secondary link as button#551sanrai wants to merge 1 commit into
Conversation
🧪 Feature QA review — injected feature test (advisory, non-blocking)Overall: FAIL Injected the PR build with a forced config + a crafted collection to exercise the feature. Source test:
Verdict: Observed rendered cards show empty 'links' arrays for all three cards, meaning no anchor elements (button-styled or plain) were rendered at all, so neither the expected button-styled CTAs for cards 1 and 2 nor the plain link for card 3 are present. Screenshot in the workflow run. |
🤖 Agent QA review — interactive + visual diff (advisory, non-blocking)Drove the PR build on the live business.adobe.com collection (filtered, searched, paginated, inspected cards), guided by a PR-vs-stable visual diff (0.00% of pixels changed) and the PR code diff. Verdict: PASS. Tested PR #551 (throwaway self-test PR; changed files were mostly QA-harness infra plus test-only Group.spec.js/general.js additions) on the live https://business.adobe.com/resources/main.html page with the PR's CaaS build injected. Visual diff review: the provided diff.png showed 0.00% pixel change / no magenta regions, confirming the PR introduces no visible rendering change on this page — consistent with it being a test-infra-only throwaway PR. Manual verification performed:
No layout breakage, overlap, truncation, or misalignment was observed anywhere in the tested regions (hero, card grid, filter panel, CTA buttons, floating chat widget). Conclusion: The PR is a throwaway/self-test change (QA harness + test files only) and produces no functional or visual regression on the live business.adobe.com resources collection. The one existing axe violation (heading-order) is pre-existing and not introduced by this PR. Everything else checked out clean. PR / stable / diff screenshots + console + axe artifacts in the workflow run. |
AI Code ReviewCritical Issues1. New CI workflow executes untrusted PR code on a persistent, credentialed self-hosted runner
This is a high-risk pattern (untrusted code + self-hosted runner + secrets + shared stateful browser) and should be gated behind required review/approval (e.g. 2. Attacker-influenced content is injected into a live, shared browser session without sanitization
Since the LLM output is derived from PR-controlled input (classic prompt-injection vector) and is never validated/sanitized before being used as href/text/config values rendered into a real page in a session that may carry real auth cookies, this is a plausible XSS / session-hijack vector, not just a test artifact. At minimum this should run in an isolated, ephemeral, unauthenticated browser context — never the shared "persistent Chrome" session. 3.
|
🧪 Feature QA review — injected feature test (advisory, non-blocking)Overall: SKIPPED Scenario mapping was not proven -- skipped instead of guessing.
Code searches performed: 6. Screenshot in the workflow run. |
🧪 Feature QA review — injected feature test (advisory, non-blocking)Overall: SKIPPED Scenario mapping was not proven -- skipped instead of guessing.
Code searches performed: 8. Screenshot in the workflow run. |
🧪 Feature QA review — injected feature test (advisory, non-blocking)Overall: PASS Injected the PR build with a searched, source-grounded config + collection fixture. Source test:
Verdict: The rendered footer contains an element with data-testid='consonant-BtnInfobit' (an tag) with href='https://example.com' and text content 'Primary Link', matching the expected values from the test. Screenshot in the workflow run. |
Throwaway. Verifies the agent can lift #545's Group.spec.js test and assert it on prod (infobit link with style primary/call-to-action renders as a button).