package patterns import ( "os" "testing" ) func TestRepository_Load(t *testing.T) { content := ` patterns: test_service: extractors: - name: "test_pattern" regex: '^Test (?P\d+) (?P\d+\.\d+)$' fields: id: "int" value: "float" ` tmpfile, err := os.CreateTemp("", "patterns_test_*.yaml") if err != nil { t.Fatal(err) } defer os.Remove(tmpfile.Name()) if _, err := tmpfile.Write([]byte(content)); err != nil { t.Fatal(err) } if err := tmpfile.Close(); err != nil { t.Fatal(err) } repo := GetInstance() err = repo.Load(tmpfile.Name()) if err != nil { t.Fatalf("Failed to load repository: %v", err) } extractors := repo.GetExtractors("test_service") if len(extractors) != 1 { t.Errorf("Expected 1 extractor, got %d", len(extractors)) } ext := extractors[0] if ext.Name != "test_pattern" { t.Errorf("Expected name 'test_pattern', got '%s'", ext.Name) } if !ext.Pattern.MatchString("Test 123 45.67") { t.Error("Regex did not match valid string") } }