FIELD NOTES · ACCEPTANCE EXERCISES

A PDF download returning 200 may still be a login page

A download dashboard can report success when a brochure link actually returns HTML. Verify the final response and the file, not just the status code or .pdf suffix. This is a delivery-format decision: it is separate from deciding whether a private customer should be authorised to receive the document.

Who should use this acceptance brief

Manufacturers and service firms publishing brochures. Use this as a scoped commissioning task for a website supplier. Where system evidence is required, a teaching file is not a substitute.

Source-bound platform fact

Content-Type describes the media type of a response. A matching header is useful evidence, but it does not by itself prove a complete, readable or safe PDF. MDN: Content-Type · Checked 16 October 2026.

Filled teaching example

Synthetic example, not a client case. Inputs, expected decisions and counterexamples follow; no live platform integration is claimed.

On narrow screens, scroll to read the complete table.

Input / caseCheck basisExpected decision
200 + text/html + login textwrong responsereject
200 + application/pdf + %PDF-format candidateopen and inspect
404 + PDF-like bytesmissing resourcereject

Run the acceptance exercise

  1. Follow redirects as a normal permitted visitor and record the final URL and headers.
  2. Check the signature, open the file and compare expected page count and document title.
  3. Test logged-out and mobile download paths if the brochure is meant to be public.

Interpret the result and retain evidence

The fixture performs a shallow format triage. “Candidate” intentionally means more checks remain: a truncated file can start with %PDF- and still fail to open. Store a hash and expected title for the approved brochure, and compare both language links against their respective files rather than accepting two links to the same language.

Limits before implementation

Not malware scanning, PDF accessibility certification or a claim that a download was read. Do not upload private documents to public validators.

Replay the finite example

Save both files in one folder and run with Node22.13 or newer. These finite checks are not a live service or certification. Filled inputs and expected outputs · Inspectable functions

node decision-check.mjs pdf-download-response-check.json