Add tests for cache-keys helpers and refactor parameters for easier testing#163
Conversation
…ility Add unit tests for helper functions in `cache-keys.ts`. While adding tests, some functions were updated to use named arguments instead of destructured parameters to simplify test setup and make inputs easier to construct in isolation. Tests cover: - string and JSON hashing helpers - prompt instruction and content hashing - tagged block extraction - content normalization - cache key generation helpers for extract, summary, slides, and transcript The parameter changes are purely structural and do not alter the resulting cache keys or runtime behavior.
|
Thanks for digging into cache-key coverage. Closing this as superseded by the cache-key changes already landed on from #171. This branch now targets pre-fix behavior in and would reintroduce API churn plus a large generated artifact that we don’t want to carry. If you want to revisit this, a much smaller follow-up with hand-written tests against current would be the right shape. |
|
Thanks for digging into cache-key coverage. Closing this as superseded by the cache-key changes already landed on main from #171. This branch now targets pre-fix behavior in src/cache-keys.ts and would reintroduce API churn plus a large generated src/cache-keys.3tg.md artifact that we don’t want to carry. If you want to revisit this, a much smaller follow-up with hand-written tests against current main would be the right shape. |
|
Thanks for the context @steipete 🙂 Apologies for duplicating existing tests. For this branch, we used 3TG to generate tests from Markdown-defined scenarios. This makes the behavior documented and executable, and generating tests this way is generally more effective than writing them manually, as future changes or refactoring can be easily updated and regenerated. If this approach looks useful, we’d be happy to show how we generated tests and help integrate 3TG. |
Summary
This PR adds unit tests for cache key helper functions and introduces a small refactor to make some functions easier to test.
Several functions in
cache-keys.tswere updated to use named parameters instead of destructured objects. This simplifies test setup and makes it easier to construct inputs when testing cache key generation logic.Changes
cache-keys.tshashString,hashJson)Test Isolation
The tests focus on validating deterministic behavior of the cache key helpers.
Inputs are constructed directly to ensure hashing and normalization logic behaves consistently across environments.
Notes
The parameter adjustments were introduced only to simplify testing and do not change the resulting cache keys or runtime behavior.
Impact
Improves test coverage for cache key generation logic and helps ensure consistent hashing behavior for prompts, content, and caching metadata.
Attribution
This contribution was generated with assistance from 3TG.
3TG is a behavior-first test generation tool for TypeScript functions that creates clean, maintainable tests and improves developer productivity.