carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1package hostfiles
2
3import (
4 "errors"
5 "os"
6 "path/filepath"
7 "testing"
8
9 "github.com/carlosframework/platform/internal/release"
10)
11
12func TestSeedStagesWithoutCommit(t *testing.T) {
13 store := release.NewDirStore(t.TempDir())
14 root, err := os.Open(t.TempDir())
15 if err != nil {
16 t.Fatal(err)
17 }
18 defer root.Close()
19 if err := os.WriteFile(filepath.Join(root.Name(), "file"), []byte("tenant"), 0600); err != nil {
20 t.Fatal(err)
21 }
22 p, err := Open(t.Context(), store, "files/g-seed/")
23 if err != nil {
24 t.Fatal(err)
25 }
26 stats, err := Seed(t.Context(), p, root, WakeState{V: 1, Host: "example.com", NextDue: 123, Timers: []WakeTimer{}}, nil)
27 if err != nil || stats.Published != 1 {
28 t.Fatal(stats, err)
29 }
30 if _, _, err := store.Get(t.Context(), ManifestKey("files/g-seed/")); !errors.Is(err, os.ErrNotExist) {
31 t.Fatal("staging committed", err)
32 }
33 if _, err := root.Stat(); err != nil {
34 t.Fatal("staging closed caller descriptor", err)
35 }
36 if _, err := p.Commit(t.Context()); err != nil {
37 t.Fatal(err)
38 }
39 m, found, err := Load(t.Context(), store, "files/g-seed/")
40 if err != nil || !found || m.Entries["file"].Object == "" || m.Platform[WakeItem].Object == "" {
41 t.Fatal(m, err)
42 }
43}
44