package hostfiles import ( "errors" "os" "path/filepath" "testing" "github.com/carlosframework/platform/internal/release" ) func TestSeedStagesWithoutCommit(t *testing.T) { store := release.NewDirStore(t.TempDir()) root, err := os.Open(t.TempDir()) if err != nil { t.Fatal(err) } defer root.Close() if err := os.WriteFile(filepath.Join(root.Name(), "file"), []byte("tenant"), 0600); err != nil { t.Fatal(err) } p, err := Open(t.Context(), store, "files/g-seed/") if err != nil { t.Fatal(err) } stats, err := Seed(t.Context(), p, root, WakeState{V: 1, Host: "example.com", NextDue: 123, Timers: []WakeTimer{}}, nil) if err != nil || stats.Published != 1 { t.Fatal(stats, err) } if _, _, err := store.Get(t.Context(), ManifestKey("files/g-seed/")); !errors.Is(err, os.ErrNotExist) { t.Fatal("staging committed", err) } if _, err := root.Stat(); err != nil { t.Fatal("staging closed caller descriptor", err) } if _, err := p.Commit(t.Context()); err != nil { t.Fatal(err) } m, found, err := Load(t.Context(), store, "files/g-seed/") if err != nil || !found || m.Entries["file"].Object == "" || m.Platform[WakeItem].Object == "" { t.Fatal(m, err) } }