clean brittle tests (#9)
build-binaries / build-binaries (push) Successful in 2m7s
test-image / build-image (push) Successful in 43s
test / test (push) Successful in 1m26s

Reviewed-on: #9
Reviewed-by: xtul <mpiasecki720@protonmail.com>
Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
This commit was merged in pull request #9.
This commit is contained in:
2026-06-20 10:32:20 +00:00
committed by archvillainette
parent f1fd03ee83
commit 13c8ced5e8
8 changed files with 145 additions and 194 deletions
+18 -36
View File
@@ -46,7 +46,7 @@ haks:
}
}
func TestEffectiveConfigAppliesVisibleToolkitDefaults(t *testing.T) {
func TestEffectiveConfigReportsConfiguredAndDefaultProvenance(t *testing.T) {
root := t.TempDir()
writeProjectFile(t, filepath.Join(root, ConfigFile), `
module:
@@ -62,35 +62,13 @@ paths:
}
effective := proj.EffectiveConfig()
if got, want := effective.Paths.Build, "build"; got != want {
t.Fatalf("expected default build path %q, got %q", want, got)
for _, field := range []string{"module.name", "paths.build"} {
if strings.TrimSpace(effective.Provenance[field].Source) == "" {
t.Errorf("expected %s to report provenance", field)
}
}
if got, want := effective.Outputs.HAKManifest, "haks.json"; got != want {
t.Fatalf("expected default HAK manifest %q, got %q", want, got)
}
if got, want := strings.Join(effective.Extract.Archives, ","), "testmod.mod"; got != want {
t.Fatalf("expected default extract archives %q, got %q", want, got)
}
if effective.Extract.ConsumeArchives == nil || *effective.Extract.ConsumeArchives {
t.Fatalf("expected default extract consume_archives false, got %#v", effective.Extract.ConsumeArchives)
}
if got, want := effective.TopData.PackageHAK, "sow_top.hak"; got != want {
t.Fatalf("expected default topdata HAK %q, got %q", want, got)
}
if got, want := strings.Join(effective.Validation.BuiltinScriptPrefixes, ","), "ga_,gc_,gen_,gui_,nw_,nwg_,ta_,x0_,x1_,x2_,x3_"; got != want {
t.Fatalf("expected default built-in script prefixes %q, got %q", want, got)
}
if got := strings.Join(effective.Validation.RequiredFields["ifo"], ","); got != "Mod_Name" {
t.Fatalf("expected default IFO required fields, got %#v", effective.Validation.RequiredFields)
}
if got, want := strings.Join(effective.Music.ConvertExtensions, ","), ".flac,.m4a,.mp3,.ogg,.wav"; got != want {
t.Fatalf("expected default music convert extensions %q, got %q", want, got)
}
if prov := effective.Provenance["paths.build"]; prov.Source != "toolkit default" {
t.Fatalf("expected paths.build toolkit default provenance, got %#v", prov)
}
if prov := effective.Provenance["module.name"]; prov.Source != "yaml" {
t.Fatalf("expected module.name YAML provenance, got %#v", prov)
if effective.Module.Name != "Test Module" {
t.Fatalf("configured module name was not preserved: %q", effective.Module.Name)
}
}
@@ -116,12 +94,16 @@ validation:
if err != nil {
t.Fatalf("Load returned error: %v", err)
}
got := strings.Join(proj.EffectiveConfig().Validation.BuiltinScriptPrefixes, ",")
if want := "custom_,nw_"; got != want {
t.Fatalf("expected configured validation prefixes %q, got %q", want, got)
effective := proj.EffectiveConfig()
for _, prefix := range []string{"custom_", "nw_"} {
if !slices.Contains(effective.Validation.BuiltinScriptPrefixes, prefix) {
t.Errorf("configured validation prefixes missing %q: %#v", prefix, effective.Validation.BuiltinScriptPrefixes)
}
}
if got := strings.Join(proj.EffectiveConfig().Validation.RequiredFields["ifo"], ","); got != "Mod_Hak,Mod_Name" {
t.Fatalf("expected configured required fields, got %#v", proj.EffectiveConfig().Validation.RequiredFields)
for _, field := range []string{"Mod_Hak", "Mod_Name"} {
if !slices.Contains(effective.Validation.RequiredFields["ifo"], field) {
t.Errorf("configured required fields missing %q: %#v", field, effective.Validation.RequiredFields)
}
}
}
@@ -853,8 +835,8 @@ paths:
if !bytes.Equal(first, second) {
t.Fatalf("effective config JSON is not deterministic")
}
if !bytes.Contains(first, []byte(`"hak_manifest": "haks.json"`)) {
t.Fatalf("effective config JSON missing HAK manifest default: %s", first)
if !bytes.Contains(first, []byte(`"name": "Test Module"`)) {
t.Fatalf("effective config JSON missing configured module name: %s", first)
}
}