Summary
Add automated tests for the complete QueryBuilder public surface.
The builder is lightweight but central to explicit custom ORM queries.
Current behavior
QueryBuilder supports:
- initial SQL construction;
- raw SQL fragments;
- spaces and newlines;
- typed parameters;
- NULL parameters;
- BLOB parameters;
- parameter binding;
- clearing;
- reserving;
- moving out SQL and parameters.
No automated tests protect these behaviors.
Expected behavior
Every public method must have deterministic unit-test coverage without requiring a database server.
Scope
Suggested files
modules/orm/tests/query_builder_test.cpp
modules/orm/tests/fakes/FakeStatement.hpp
modules/orm/src/QueryBuilder.cpp
modules/orm/include/vix/orm/QueryBuilder.hpp
Acceptance criteria
Non-goals
This issue does not include:
- a full query DSL;
- SQL parsing;
- placeholder validation;
- repository filtering.
Suggested labels
scope:orm
type:ci
tests
good first issue
status:ready
Summary
Add automated tests for the complete
QueryBuilderpublic surface.The builder is lightweight but central to explicit custom ORM queries.
Current behavior
QueryBuildersupports:No automated tests protect these behaviors.
Expected behavior
Every public method must have deterministic unit-test coverage without requiring a database server.
Scope
raw().rawSpace().space().newline().param()overload.paramNull().bind()using a fake statement.reserve().clear().empty().takeSql().takeParams().Suggested files
modules/orm/tests/query_builder_test.cppmodules/orm/tests/fakes/FakeStatement.hppmodules/orm/src/QueryBuilder.cppmodules/orm/include/vix/orm/QueryBuilder.hppAcceptance criteria
DbValue.clear()removes SQL and parameters.Non-goals
This issue does not include:
Suggested labels
scope:ormtype:citestsgood first issuestatus:ready