By the end of this lesson
Run a regression suite and explain the limits of what it establishes.
Before you start
- Node.js 24 with a terminal and plain-text editor; the browser-only lesson is labelled separately.
- Complete lesson 24 or be comfortable with its examples.
Three words to know
- Fixture
- A small controlled input for a test.
- Regression suite
- Checks retained so later changes can be compared with intended behaviour.
- Evidence scope
- The particular cases and environment a successful check supports.
1. Test the downloaded files
Save task_report.test.mjs beside task_report.mjs. The suite uses temporary files and invokes the actual CLI. It also imports the reusable functions. No npm install, network service, API key or VPS purchase is required.
node --test task_report.test.mjs
What you should see · example output
The project tests pass. Exact reporter formatting can differ between Node patch versions.
2. Check both useful results and honest failures
The suite checks ordinary and empty data, malformed JSON, missing and extra fields, unsupported types and statuses, Unicode length, invalid UTF-8, BOM, byte and record limits, duplicate-key last-value behaviour, missing files, help and argument count. It confirms that a bad last record does not emit a partial summary. Passing these checks is evidence for the listed cases, not exhaustive correctness.
Add a regression before changing a rule. If you change the title limit, adjust its boundary cases and confirm that valid and invalid examples behave as intended. Do not weaken the assertion just to make an accidental implementation pass.
3. Keep recipe contracts separate
OpenViST Recipes provide independently versioned scripts with their own requirements, sources, licences and recorded tests. A recipe that checks an environment-key manifest does not accept this task-list format merely because both use JavaScript. Inspect a real recipe’s documented input before adapting it. JSON Validator and Text Diff can help inspect syntax and edits but do not prove the project’s semantic rules.
4. Choose the next layer deliberately
You can now work through small JavaScript programs, a browser event and a local Node CLI. Frameworks, browser build tooling, HTTP clients with timeouts, databases, TypeScript and production deployment are separate next topics. This foundations route does not certify production readiness. Rust is the next planned language route; return to a specific earlier lesson whenever a rule is still hard to explain.
YOUR TURN
A small check before you continue
Add a rejection test for status Open. If every test passes, does that prove that any JavaScript recipe is correct?
Show a suggested answer
Open must be rejected because the contract is case-sensitive. Passing this project’s suite only supports its tested code, runtime and cases. A different recipe needs its own input rules and evidence.
Sources and scope
Documentation and examples reviewed 2026-10-18. Provider screens, package versions and output wording can differ. Examples show expected outcomes; they are not a claim that OpenViST connected to your server or verified your setup.
