From 97ff2dfaa1a462760df5a7420d4672f178b5db3f Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Sat, 10 Oct 2026 13:28:42 +0200 Subject: [PATCH] Test that WithDataFS refuses a nil module and a manifest's reads refuses a repeated module --- shipped_data_test.go | 8 ++++++++ shipped_test.go | 20 +++----------------- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/shipped_data_test.go b/shipped_data_test.go index 382e002..8a657fd 100644 --- a/shipped_data_test.go +++ b/shipped_data_test.go @@ -1,6 +1,7 @@ package fejkdata import ( + "io/fs" "reflect" "slices" "strings" @@ -134,6 +135,13 @@ func TestWithDataFSLayersEachModuleOverTheOneBefore(t *testing.T) { } } +func TestWithDataFSRefusesANilModule(t *testing.T) { + var unset fs.FS + if _, err := New(WithDataFS(fstest.MapFS{}, unset)); err == nil || !strings.Contains(err.Error(), "WithDataFS module 2 is nil") { + t.Errorf("New(WithDataFS(fsys, nil)) = %v, want module 2 named nil", err) + } +} + func TestFakeIsSafeForConcurrentUse(t *testing.T) { f, err := New(withShipped(), WithSeed(1)) if err != nil { diff --git a/shipped_test.go b/shipped_test.go index 7f3ee2d..eeff0d7 100644 --- a/shipped_test.go +++ b/shipped_test.go @@ -183,21 +183,6 @@ func shippedIndex(t *testing.T) map[string]datafiles.IndexEntry { return index } -func TestEachShippedModuleNamesWhatItReads(t *testing.T) { - for _, m := range shippedModules(t) { - manifest, err := datafiles.FS(m.fsys).Manifest() - if err != nil { - t.Fatal(err) - } - if m.dir == "sv_SE" && !slices.Contains(manifest.Reads, "github.com/larvit/fejkdata/data/geo/SE") { - t.Errorf("sv_SE reads %v, want geo/SE among them", manifest.Reads) - } - if slices.Contains(manifest.Reads, m.importPath()) { - t.Errorf("%s reads %v, want itself left out", m.dir, manifest.Reads) - } - } -} - func TestEachShippedModuleRendersBesideTheModulesItReads(t *testing.T) { modules := shippedModules(t) for _, m := range modules { @@ -439,8 +424,9 @@ func TestABrokenManifestFailsNewNamingEveryMistake(t *testing.T) { `{"index": {"a": {"paths": ["", "x", "x"]}}}`: {`paths item 3 repeats "x"`}, `{"index": {"a": {"paths": [""], "parent": "b"}}}`: {`parent "b" names no entry`}, `{"index": {"a": {"paths": [""], "reads": ["b"]}}}`: {`unknown key "reads"`}, - `{"reads": "b"}`: {"reads must be a list, not a string"}, - `{"reads": ["", 3]}`: {"reads item 1 is empty", "reads item 2 must be a string, not a number"}, + `{"reads": "b"}`: {"reads must be a list, not a string"}, + `{"reads": ["", 3]}`: {"reads item 1 is empty", "reads item 2 must be a string, not a number"}, + `{"reads": ["a", "a"]}`: {`reads item 2 repeats "a"`}, } { _, err := New(WithDataFS(fstest.MapFS{".fejkdata.json": {Data: []byte(manifest)}})) for _, w := range want {