package activator import ( "os" "path/filepath" "testing" ) // Final review carry item: the full purge (a move's cut) removes the // database and its .seed marker with it; the partial purge (a restore's // pre-clean, where the database is already gone) keeps both as it found // them. func TestPurgeLocalDBArtifactsRemovesTheMarkerWithTheDatabase(t *testing.T) { for _, full := range []bool{false, true} { dir := t.TempDir() db := filepath.Join(dir, "a.shop.example.com.db") for _, p := range []string{db, db + "-wal", db + "-shm", db + SeedMarkerSuffix} { if err := os.WriteFile(p, []byte("x"), 0o600); err != nil { t.Fatal(err) } } PurgeLocalDBArtifacts(db, full) for _, p := range []string{db + "-wal", db + "-shm"} { if _, err := os.Lstat(p); !os.IsNotExist(err) { t.Errorf("full %v: %s survived", full, p) } } for _, p := range []string{db, db + SeedMarkerSuffix} { if _, err := os.Lstat(p); os.IsNotExist(err) != full { t.Errorf("full %v: %s gone %v, want gone %v", full, p, os.IsNotExist(err), full) } } } }