// Copyright (c) 2026 Lark Technologies Pte. Ltd. // SPDX-License-Identifier: MIT package contentsafety import ( "io" "os" "path/filepath" "strings" "testing" ) func TestLoadConfig_ValidFile(t *testing.T) { dir := t.TempDir() content := `{ "allowlist": ["im", "drive.upload"], "rules": [{"id": "r1", "pattern": "(?i)test_pattern"}] }` if err := os.WriteFile(filepath.Join(dir, "content-safety.json"), []byte(content), 0644); err != nil { t.Fatal(err) } cfg, err := LoadConfig(dir) if err != nil { t.Fatalf("LoadConfig() error = %v", err) } if len(cfg.Allowlist) != 2 || cfg.Allowlist[0] != "im" { t.Errorf("Allowlist = %v, want [im, drive.upload]", cfg.Allowlist) } if len(cfg.Rules) != 1 || cfg.Rules[0].ID != "r1" { t.Fatalf("Rules = %v, want [{r1, ...}]", cfg.Rules) } if !cfg.Rules[0].Pattern.MatchString("TEST_PATTERN here") { t.Error("compiled pattern should match") } } func TestLoadConfig_InvalidJSON(t *testing.T) { dir := t.TempDir() os.WriteFile(filepath.Join(dir, "content-safety.json"), []byte(`{bad`), 0644) _, err := LoadConfig(dir) if err == nil { t.Fatal("expected error for invalid JSON") } } func TestLoadConfig_InvalidRegex(t *testing.T) { dir := t.TempDir() os.WriteFile(filepath.Join(dir, "content-safety.json"), []byte(`{"allowlist":[],"rules":[{"id":"bad","pattern":"(?P