Repository navigation
Conversation
Unit specs (mocked HTTP) for RestChannel#object, RestObject#get, RestObject#publish and RestObject#generateObjectId, plus a sandbox integration spec covering end-to-end round-trips in both JSON and msgpack protocol variants. Update the completion-status matrix with RSL16 and the RSO section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch was successfully deployed
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.
Adds UTS test specs for the LiveObjects REST API (
RSL16,RSO1–RSO16) specified in the base PR (AIT-468/liveobjects-rest-spec). Assertions are based on that spec, with the behaviour list in the earlierREST-OBJECTS-PROPOSAL.md(branchuts-liveobjects-rest) used as a checklist for the integration tests.What's added
uts/objects/unit/rest_object_get.mdRestChannel#object(one instance per channel; error 40019 without the plugin),getendpoint and percent-encodedobjectIdsegment,path/compactquery params, paths passed through verbatim (RSO6), compact results returned verbatim (JSON and msgpack), full-mode decoding intoRestLiveMap/RestLiveCounter/ObjectDataleaves, unrecognised shapes passed through, server errors surfaceduts/objects/unit/rest_object_publish.mdactionfield,id/objectId/pathpreserved verbatim,semanticsand leaf-value encoding per OMP2/OD4, no auto-generatedideven withidempotentRestPublishing, 40003 for zero or multiple body fields, targeting not validated client-side,RestObjectPublishResultdecodinguts/objects/unit/rest_object_generate_id.mdinitialValue,nonceand server time,initialValuecontents, JSON encoding even on a msgpack client, unrecognised semantics / missing body → 40003, nonce of 16+ characters, unique per call, deterministicinitialValue, generated values sent unchanged in*WithObjectIdoperationsuts/objects/integration/rest_object_test.mdmapCreate,mapRemove, wildcard path, client-generated IDs accepted in one batch, idempotentid, error surfacing for unresolvable targetsuts/docs/completion-status.mdgains anRSL16row and a RestObject (RSO) section.Test IDs use the
objects/unit/...andobjects/integration/...categories, matching the LiveObjects tests already onmain. This branch was cut beforeuts/objects/landed onmain, but the new file names don't clash with it.Points for reviewers
These tests depend on spec wording that is ambiguous or may not match the service:
string+encoding: "json".mainadds an OD2gjsonfield, which suggests the real wire format may differ.semanticson the wire. Requests and mocked full-mode responses use the OMP2 integer (0=LWW). If the server actually returns"lww", the mocked responses need updating.generateObjectIdand server time. RSO4b says the function does no I/O, but RSO4g requires server time per RTO16, which means aGET /timeon a fresh client. The unit tests follow RSO4g: they mock/timeand assert the exact objectId timestamp. If local time is intended, RSO4g should change and so should these tests.objectIdpath encoding. Tests useencode_uri_component, which escapes:and@. RFC 3986 allows both unescaped in a path segment.items.*) and idempotent-idtests, and the compact-map assertions, assume server behaviour that hasn't been checked against the sandbox yet.🤖 Generated with Claude Code