2.1 KiB
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/Inspectfor pgsql, and pgsql merge/convert output:tests/dbtest/dbtest.sh test postgres ./cmd/relspec/.- mssql source reads (convert/inspect):
dbtest.sh up mssql, envRELSPEC_TEST_MSSQL_CONN; fixturetest_data/mssql/test_schema.sql. - Skip when env var unset.