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 / case | Check basis | Expected decision |
|---|---|---|
| 200 + text/html + login text | wrong response | reject |
| 200 + application/pdf + %PDF- | format candidate | open and inspect |
| 404 + PDF-like bytes | missing resource | reject |
Run the acceptance exercise
- Follow redirects as a normal permitted visitor and record the final URL and headers.
- Check the signature, open the file and compare expected page count and document title.
- 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