Documentation
¶
Overview ¶
Package sessiontest checks session.Store implementations against the contract the built-in stores follow.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Run ¶
Run runs the conformance tests against stores made by newStore, which must return an empty store independent of the others; it is called once per subtest and subtests run in parallel. The contract:
- Get of a missing session returns session.ErrNotFound; Delete of a missing session succeeds.
- Save stores a snapshot: messages, state (as JSON values), ID and timestamps round-trip, and later changes to the saved or loaded session are not stored.
- Each Save increments the stored revision by one, starting at 1, and Get returns the session at its stored revision. A session loaded before its stored copy was deleted is stored again by Save, at the next revision after the one it was loaded at.
- Saving a session loaded, created by session.GetOrCreate or saved earlier returns session.ErrConflict when the stored session changed since, without changing it; other sessions overwrite. This holds for concurrent saves.
- List returns every session, most recently updated first, then by ID.
- IDs are case-sensitive, though a store whose medium cannot tell IDs differing only in case apart may reject the second one; IDs outside the pattern documented on session.Store are rejected by Get, Save and Delete.
- Payloads of several megabytes are stored.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.