package sdk import ( "encoding/json" "os" "testing" ) // The module's one package artifact is the module's whole directory, which it says by leaving `paths` out: the manifest // validator refuses the word "." as a path (a package artifact naming one directory). func TestThePackageArtifactNamesNoPathForTheWholeDirectory(t *testing.T) { raw, err := os.ReadFile("module.json") if err != nil { t.Fatal(err) } var m struct { Build struct { Artifacts []struct { Name string `json:"name"` Paths []string `json:"paths"` } `json:"artifacts"` } `json:"build"` } if err := json.Unmarshal(raw, &m); err != nil { t.Fatal(err) } if len(m.Build.Artifacts) != 1 { t.Fatalf("artifacts are %+v: one", m.Build.Artifacts) } for _, a := range m.Build.Artifacts { for _, p := range a.Paths { if p == "." || p == "" { t.Errorf("artifact %s names %q as a path: leave `paths` out for the module's whole directory", a.Name, p) } } } }