# 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.