Files
coyote/docs/testing/notes/ITERATION-8-NOTES.md
T

2.9 KiB

Iteration 8 — Test Implementation Notes

Plan file addressed

docs/testing/plans/08-request-context.md

Tests created

src/config/request_context.rs (22 new tests, 51 total in file)

Test name What it verifies
state_empty_context Empty context → empty StateFlags
state_with_role_only Role set → ROLE flag
state_with_empty_session Empty session → SESSION_EMPTY flag
state_flags_combine_role_and_session Multiple flags combine correctly
role_info_errors_when_no_role No role → error
role_info_succeeds_with_role Role present → exports prompt
agent_info_errors_when_no_agent No agent → error
rag_info_errors_when_no_rag No RAG → error
use_role_obj_errors_when_agent_active Agent blocks role assignment
exit_rag_clears_rag exit_rag() sets rag to None
discontinuous_last_message_sets_continuous_false Marks last message non-continuous
discontinuous_last_message_noop_when_none No last message → no-op
before_chat_completion_sets_last_message Creates LastMessage with empty output
role_like_mut_returns_none_when_empty No active scope → None
role_like_mut_returns_role_when_only_role Role only → returns role
role_like_mut_prefers_session_over_role Session takes priority
working_mode_cmd CMD mode flags correct
working_mode_repl REPL mode flags correct
session_file_returns_yaml_path Correct .yaml suffix
session_file_with_subdir subdir/name → nested path
is_compressing_session_false_when_no_session No session → false
is_compressing_session_false_with_default_session Default session → false

Total: 22 new tests (272 total in suite)

Bugs discovered

None.

Observations for future iterations

  1. Rag struct has no Default: Rag requires an AppConfig, name, embedding model, and HNSW index. Can't create test instances without heavy setup. RAG-related state tests (state with RAG, exit_rag with actual RAG) deferred.

  2. role_like_mut priority is session > agent > role > None: The session-over-role priority is verified. Agent priority can't be easily tested without agent init (filesystem).

  3. StateFlags is a bitflags type: Tested empty, individual flags (ROLE, SESSION_EMPTY), and combinations. The SESSION flag (non-empty session) requires adding messages to a session which needs more setup — deferred.

  4. info() and sysinfo() require model provider config: These format system info strings that include model details. Testing requires a valid model provider configuration.

  5. The RequestContext test file now has 51 tests spanning iterations 1, 4, 5, 7, and 8. It's the most heavily tested module, which matches its role as the central state container.

Next iteration

Plan file 09: REPL Commands — REPL command handlers, state assertions, argument parsing.