test: add isolated Bash test harness and project skeleton

This commit is contained in:
2026-10-11 23:14:44 +03:00
parent e7e728cd23
commit 216b09474e
18 changed files with 447 additions and 1 deletions
+15 -1
View File
@@ -260,7 +260,7 @@ Allowed status values: `NOT STARTED`, `IN PROGRESS`, `BLOCKED`, `DONE`.
| Milestone | Status | Outcome |
|---|---|---|
| M0 | NOT STARTED | Test harness and safe project skeleton |
| M0 | DONE | Test harness and safe project skeleton |
| M1 | NOT STARTED | Runtime foundation, CLI shell, and config loading |
| M2 | NOT STARTED | WireGuard parser, client model, `status`, and `list` |
| M3 | NOT STARTED | Locking, backups, atomic apply, and rollback engine |
@@ -1551,6 +1551,20 @@ Use this template:
- Next milestone: My
```
## 2026-10-11 — M0 — DONE
- Implemented: strict source-safe `wg-manager.sh` help shell, placeholder configuration, runtime ignores, isolated pure-Bash test harness, minimal WireGuard fixture, and deny-by-default logged mocks for all planned external commands.
- Coordinator: `gpt-5.6-sol` (`high`)
- Subagents: `milestone_worker` / `milestone_repairer`, `gpt-5.6-luna` (`medium`)
- Repair cycles: 2
- Sol review: replaced a tautological host-path check with a recursive pure-Bash guard; made mocks deny empty calls unless explicitly authorized and assert exact invocation logs; removed an unused production path variable, added a narrow ShellCheck source directive, and cleared unintended index staging.
- Verification: `bash -n wg-manager.sh`, `bash -n tests/run.sh`, `bash -n tests/helpers.sh`, `bash -n tests/mocks/bin/*`, `bash tests/run.sh`, `./wg-manager.sh help`, `(cd /tmp && /home/sasa/share/bash/wireguard-scripts/wg-manager.sh help)`, `git diff --check`, `git diff --no-index --check /dev/null <new-file>`, `git status --short`
- Result: all required checks passed; 13 test assertions passed; unknown commands and extra arguments returned status 64; executable modes and isolated mock behavior were verified. Optional `shellcheck wg-manager.sh tests/run.sh tests/helpers.sh tests/mocks/bin/*` was `SKIP` because ShellCheck is unavailable.
- Decisions: none
- Known limitations: real WireGuard, networking, service, firewall, route, sysctl, journal, and deployment-server checks were not run; M0 verification is fixture- and mock-based as required.
- Suggested commit message: `test: add isolated Bash test harness and project skeleton`
- Next milestone: M1
# 8. Final completion rule
The MVP is complete only when: