package catalog import "testing" func TestDefaultAndMerge(t *testing.T) { base, err := Default() if err != nil { t.Fatal(err) } if base.Find("stoat") == nil || base.Find("xui") == nil { t.Fatal("в каталоге нет stoat/xui") } over, err := Parse([]byte(` categories: - {name: scripts, disabled: true} - name: extra type: files paths: [/srv/extra] - name: telegraf type: files paths: [/etc/telegraf] `)) if err != nil { t.Fatal(err) } m := Merge(base, over) if err := m.Validate(); err != nil { t.Fatal(err) } if !m.Find("scripts").Disabled || len(m.Find("scripts").Paths) == 0 { t.Error("короткая форма disabled должна сохранять остальные поля") } if m.Find("extra") == nil { t.Error("новая категория не добавлена") } if m.Find("telegraf").Type != TypeFiles { t.Error("категория не заменена") } }