Files
relspecgo/tests/_plans/cmd.md
T

2.1 KiB

Plan: cmd/relspec (49.3%) and pkg/jobs (72.0%)

Existing

  • cmd tests: convert_from_list, diff_sqldir, dry_run (#41), job, merge_from_list, templ_from_list
  • jobs: jobs_test.go

cmd/relspec

Area Gap Approach
convert readDatabaseForConvert 22%, writeDatabase 36%, validateWriteTarget 44%, loadExtraFields, getSchemaNames, stderrWarn Table-driven per format using tests/assets; unsupported format, missing package, bad extra-fields JSON/empty/non-bun, schema filter not found, dctx multi-schema
merge readDatabaseForMerge 18%, writeDatabaseForMerge 14%, expandPath, parseSkipTables, isMergeOutputFormat Table-driven formats; globs; skip-list parsing
diff runDiff, readDatabase, maskPasswordInDiff File-based inputs; password masking cases
inspect runInspect, readDatabaseForInspect, filterDatabaseBySchema File-based input; schema filter
scripts runScriptsList Use pkg/readers/sqldir fixtures; execute path live via dbtest postgres
assets runAssetsList, runAssetsExecute List against temp dir; execute live via dbtest postgres
edit runEdit, readDatabaseForEdit, writeDatabaseForEdit Test read/write helpers only; skip TUI loop
report state dir, load/save state, token, machine id, submitReport Temp HOME; submit against httptest server; never hit real endpoint
root/main printVersionHeader, hasSilentFlag Pure
dry-run merge/split paths Add merge dry-run and split dry-run tests (convert covered)

pkg/jobs

  • ResolvedLogPolicy, Dir, validateTemplInput (0%), validateOutput (44%): table-driven valid/invalid job definitions.
  • Existing job files: examples/jobs.

Live DB cases (dbtest)

  • runScriptsExecute, runAssetsExecute, job script-exec, readDatabaseForConvert/Merge/Inspect for pgsql, and pgsql merge/convert output: tests/dbtest/dbtest.sh test postgres ./cmd/relspec/.
  • mssql source reads (convert/inspect): dbtest.sh up mssql, env RELSPEC_TEST_MSSQL_CONN; fixture test_data/mssql/test_schema.sql.
  • Skip when env var unset.