### R1 — SnapshotInto copies hub.db as a file instead of VACUUM INTO
=== RUN   TestSnapshot_ConsistentWithLiveDBIncludingWAL
    dbsnap_test.go:104: table hosts: snapshot 0 rows, live 150
    dbsnap_test.go:104: table hub_settings: snapshot 0 rows, live 2
--- FAIL: TestSnapshot_ConsistentWithLiveDBIncludingWAL (0.05s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-hub/internal/dbsnap	0.055s
FAIL

### R2 — no busy check (two runs may overlap)
=== RUN   TestSnapshot_NeverTwoAtOnce
	/mnt/5_hdd/felhom.eu/git/felhom.eu/hub/internal/dbsnap/dbsnap_test.go:141 +0x76
	/mnt/5_hdd/felhom.eu/git/felhom.eu/hub/internal/dbsnap/dbsnap_test.go:153 +0x1a6
	/mnt/5_hdd/felhom.eu/git/felhom.eu/hub/internal/dbsnap/dbsnap_test.go:141 +0x76
	/mnt/5_hdd/felhom.eu/git/felhom.eu/hub/internal/dbsnap/dbsnap_test.go:151 +0x34
	/mnt/5_hdd/felhom.eu/git/felhom.eu/hub/internal/dbsnap/dbsnap_test.go:151 +0x178
FAIL	gitea.dooplex.hu/admin/felhom-hub/internal/dbsnap	600.107s
FAIL

### R3 — prune keeps everything
=== RUN   TestSnapshot_KeepsNewestTwo
    dbsnap_test.go:130: kept [hub-20261006T000000Z.db hub-20261007T000000Z.db hub-20261008T000000Z.db], want [hub-20261007T000000Z.db hub-20261008T000000Z.db]
--- FAIL: TestSnapshot_KeepsNewestTwo (0.07s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-hub/internal/dbsnap	0.075s
FAIL

### R4 — a failed write leaves its .tmp
=== RUN   TestSnapshot_FailureLeavesNoFile
    dbsnap_test.go:191: left 1 file(s) behind
--- FAIL: TestSnapshot_FailureLeavesNoFile (0.00s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-hub/internal/dbsnap	0.007s
FAIL

ok  	gitea.dooplex.hu/admin/felhom-hub/internal/dbsnap	0.135s

[exited with code 0]
