Skip to content

[compat] Execute parsed unit tests for the first DuckDB fixture slice #205

Description

@sabino

Objective

Move unit tests from read-only manifest/listing support to the first executable DuckDB-backed compatibility slice for the already parsed YAML fixture subset.

Current Reality

dxt parses dict-style unit-test given and expect row fixtures, emits Manifest v12-shaped unit_tests, maintains parent/child maps, and lists unit tests through selector support. Execution, fixture materialization, CSV/SQL fixtures, overrides, version expansion, disabled-unit-test placement, SQL comparison, and run-results are still planned gaps.

Role and Labels

  • role: role:worker
  • labels: type:compat, area:parser, area:runner, area:duckdb, area:artifacts, artifact:manifest, artifact:run-results, command:test, command:build
  • readiness: status:ready, ready-for-agent

Priority

priority:p1: newer Jaffle-style projects use unit tests, and execution parity is a visible dbt Core gap after parsing support.

Readiness

Ready for one implementation worker if scoped to one minimal DuckDB execution path for the existing parsed row-fixture subset.

Risk

  • risk:runtime-boundary: fixture materialization, compilation, execution, and comparison must be Zig product runtime behavior.
  • risk:artifact-contract: run result rows and manifest stability must remain dbt-shaped.

Dependencies / Sequencing

No open issue or PR was active when this issue was created. Depend on existing unit-test parsing/listing only. Do not combine this with CSV fixtures, SQL fixtures, overrides, model version expansion, disabled placement changes, or broad indirect-selection work.

Acceptance Criteria

  • Selected supported unit tests can run through dxt test against DuckDB using the existing parsed dict row fixtures.
  • dxt build handles the same supported unit-test subset in graph order without changing unrelated model/seed/test behavior.
  • Passing and failing unit tests produce deterministic dbt-shaped run_results.json rows for the supported subset.
  • Native Zig tests cover unit-test planning/comparison logic, with focused black-box fixture coverage through the Zig binary.
  • Unsupported unit-test features remain clearly out of scope and do not partially execute with misleading success.

Validation

  • zig build test
  • focused unit-test CLI pytest through the Zig binary
  • dbt oracle comparison for a minimal fixture where supported behavior overlaps
  • runtime-boundary scan if any developer harness changes are made

Stop Condition

Stop and split if execution requires general Jinja, CSV/SQL unit-test fixtures, adapter-specific test overrides, model version expansion, or changes to generic/singular data-test execution.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions