clone

an offline map explorer where each world, from a game map to a city's open data, ships as one .atlas file

feat/atlas-next-horizon
atlas / format / vnext / release_test.go
release_test.go 1.6K
1package vnext23import "testing"45func TestReleaseValidation(t *testing.T) {6 t.Parallel()78 valid := Release{9 Title: "Minimal",10 CreatedAt: "2026-08-01T20:13:08Z",11 Revision: 1,12 Stamp: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",13 Worlds: 1,14 }15 for name, mutate := range map[string]func(*Release){16 "title": func(release *Release) { release.Title = "" },17 "capture": func(release *Release) { release.CreatedAt = "yesterday" },18 "revision": func(release *Release) { release.Revision = -1 },19 "stamp": func(release *Release) { release.Stamp = "short" },20 "world count": func(release *Release) { release.Worlds = 0 },21 } {22 t.Run(name, func(t *testing.T) {23 candidate := valid24 mutate(&candidate)25 if err := candidate.Validate(); err == nil {26 t.Fatal("invalid release was accepted")27 }28 })29 }30}3132func TestFoldIsDeterministicAndRevisionAware(t *testing.T) {33 t.Parallel()3435 older := Descriptor{Locator: "older.atlas", Slug: "minimal", CreatedAt: "2026-08-01T20:13:08Z", Revision: 1, Stamp: "a"}36 rebuilt := Descriptor{Locator: "rebuilt.atlas", Slug: "minimal", CreatedAt: older.CreatedAt, Revision: 2, Stamp: "b"}37 newer := Descriptor{Locator: "newer.atlas", Slug: "minimal", CreatedAt: "2026-08-02T20:13:08Z", Revision: 0, Stamp: "c"}3839 if winner := Fold([]Descriptor{newer, rebuilt, older})["minimal"]; winner != newer {40 t.Fatalf("winner = %#v, want newest capture", winner)41 }42 if winner := Fold([]Descriptor{rebuilt, older})["minimal"]; winner != rebuilt {43 t.Fatalf("winner = %#v, want revised build", winner)44 }45}