package config import ( "os" "path/filepath" "testing" ) func TestLoadAccountSections(t *testing.T) { d := t.TempDir() p := filepath.Join(d, "chfs.ini") content := `path=/srv/share port=8080 [demo] password=abc rule.default=r rule.none=secret|private rule.r=docs rule.r=public rule.w=upload rule.d=admin [guest] password= rule.default= rule.none=hidden ` if err := os.WriteFile(p, []byte(content), 0600); err != nil { t.Fatal(err) } c, err := Load(p) if err != nil { t.Fatal(err) } if len(c.Accounts) != 2 { t.Fatalf("accounts=%d", len(c.Accounts)) } if c.Accounts[0].Username != "demo" || c.Accounts[0].Default != "r" { t.Fatalf("demo=%#v", c.Accounts[0]) } if len(c.Accounts[0].Read) != 2 || c.Accounts[0].Read[0] != "docs" || c.Accounts[0].Read[1] != "public" { t.Fatalf("read=%#v", c.Accounts[0].Read) } if len(c.Accounts[0].Write) != 1 || len(c.Accounts[0].Delete) != 1 || len(c.Accounts[0].None) != 2 { t.Fatalf("rules=%#v", c.Accounts[0]) } }