Skip to content

Add /qa-block Netlify function for Prerender 403<->200 toggle testing - #7

Merged
belminpre merged 1 commit into
mainfrom
qa/qa-block
Jun 11, 2026
Merged

Add /qa-block Netlify function for Prerender 403<->200 toggle testing#7
belminpre merged 1 commit into
mainfrom
qa/qa-block

Conversation

@belminpre

Copy link
Copy Markdown
Contributor

Mirrors the qa-status.ts pattern but toggles between 403 Forbidden and 200 OK (instead of 500/200) via the build-time env var QA_FORCE_403:

QA_FORCE_403="true" -> HTTP 403 + text/html minimal body
(<title>QA Block Test</title>,

403 Forbidden

)
anything else/unset -> HTTP 200 + text/html minimal body
(<title>QA Block Test</title>,

QA Block Test

)

Same handler signature, env-read pattern, and Response shape as qa-status.ts. Kept as its own function (not folded into qa-code.ts) because the env-driven toggle does not fit the generic fixed-status dispatcher — same reasoning as qa-status.ts.

QA_FORCE_403 is captured at deploy time (process.env), so flipping it in the Netlify UI requires a redeploy (push to main, or Netlify UI -> Deploys -> Trigger deploy).

  • netlify/functions/qa-block.ts: new function.
  • netlify.toml: add /qa-block -> /.netlify/functions/qa-block rewrite with status = 200 (rewrite TYPE, preserves upstream 200/403 + Content-Type). Placed immediately after the existing /qa-status block (grouping the two env-toggled endpoints) and before the SPA /* catch-all. qa-status.ts, qa-code.ts, and all other rewrites are untouched.

No app routes, pages, or dependencies changed.

Mirrors the qa-status.ts pattern but toggles between 403 Forbidden
and 200 OK (instead of 500/200) via the build-time env var
QA_FORCE_403:

  QA_FORCE_403="true"  -> HTTP 403 + text/html minimal body
                          (<title>QA Block Test</title>,
                           <h1>403 Forbidden</h1>)
  anything else/unset  -> HTTP 200 + text/html minimal body
                          (<title>QA Block Test</title>,
                           <h1>QA Block Test</h1>)

Same handler signature, env-read pattern, and Response shape as
qa-status.ts. Kept as its own function (not folded into qa-code.ts)
because the env-driven toggle does not fit the generic fixed-status
dispatcher — same reasoning as qa-status.ts.

QA_FORCE_403 is captured at deploy time (process.env), so flipping it
in the Netlify UI requires a redeploy (push to main, or Netlify UI ->
Deploys -> Trigger deploy).

- netlify/functions/qa-block.ts: new function.
- netlify.toml: add /qa-block -> /.netlify/functions/qa-block rewrite
  with status = 200 (rewrite TYPE, preserves upstream 200/403 +
  Content-Type). Placed immediately after the existing /qa-status
  block (grouping the two env-toggled endpoints) and before the SPA
  /* catch-all. qa-status.ts, qa-code.ts, and all other rewrites are
  untouched.

No app routes, pages, or dependencies changed.

Co-authored-by: Cursor <cursoragent@cursor.com>
@netlify

netlify Bot commented Jun 11, 2026

Copy link
Copy Markdown

Deploy Preview for weirdanimals ready!

Name Link
🔨 Latest commit c25ee03
🔍 Latest deploy log https://app.netlify.com/projects/weirdanimals/deploys/6a2b3adbacfeae0008dea049
😎 Deploy Preview https://deploy-preview-7--weirdanimals.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@belminpre
belminpre merged commit ceee211 into main Jun 11, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant