32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
package companion
|
|
|
|
import "testing"
|
|
|
|
func TestFileSnapshotSequenceStorePersistsMonotonicSequence(t *testing.T) {
|
|
t.Chdir(t.TempDir())
|
|
store, err := NewFileSnapshotSequenceStore(SnapshotSequenceFilename)
|
|
if err != nil {
|
|
t.Fatalf("create sequence store: %v", err)
|
|
}
|
|
first, err := store.Next("players", "current", 100)
|
|
if err != nil || first != 100 {
|
|
t.Fatalf("reserve first sequence: sequence=%d err=%v", first, err)
|
|
}
|
|
restarted, err := NewFileSnapshotSequenceStore(SnapshotSequenceFilename)
|
|
if err != nil {
|
|
t.Fatalf("restart sequence store: %v", err)
|
|
}
|
|
second, err := restarted.Next("players", "current", 1)
|
|
if err != nil || second != 101 {
|
|
t.Fatalf("reserve persisted sequence: sequence=%d err=%v", second, err)
|
|
}
|
|
}
|
|
|
|
func TestFileSnapshotSequenceStoreRejectsHostPaths(t *testing.T) {
|
|
for _, filename := range []string{"../snapshot-sequences.json", "/tmp/snapshot-sequences.json", ""} {
|
|
if _, err := NewFileSnapshotSequenceStore(filename); err == nil {
|
|
t.Fatalf("expected invalid filename rejection: %q", filename)
|
|
}
|
|
}
|
|
}
|