test: harden ky create test and cover delete/list routes - #119
Open
whitewofe wants to merge 1 commit into
Open
Conversation
- create.test.ts: await ky.post, assert {ok:true}, verify persisted
thing_id/name/description so the create+list sequence is deterministic.
- delete.test.ts (new): covers happy-path deletion via URLSearchParams
body and a no-op when thing_id is not present.
- list.test.ts (new): covers empty-list response and insertion-order
with monotonically increasing thing_id from the db idCounter.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/claim #2
Builds on the prior ky-migration test work by removing the remaining race in the create test and filling in coverage for the two
thingsroutes that had no tests.tests/routes/things/create.test.tsky.post("things/create", …)call so the create completes beforethings/listruns (previously fire-and-forget, the assertion only passed by accident on fast paths).{ ok: true }.name,description, and thatthing_idis a non-empty string — covers the full create → persist → list contract.tests/routes/things/delete.test.ts(new)thing_idvia URL-encoded form data, asserts{ ok: true }and that only the surviving thing remains.thing_idstill returns{ ok: true }and leaves existing data untouched.tests/routes/things/list.test.ts(new){ things: [] }.thing_idvalues are unique and monotonically increasing (matches theidCounterbehavior inlib/db/db-client.ts).Validation
No production code changed; tests only.
Closes #2