@@ -35,6 +35,74 @@ on_error: "passthrough"
3535 }
3636}
3737
38+ func TestLoadUserFiltersYMLExtension (t * testing.T ) {
39+ dir := t .TempDir ()
40+
41+ validYAML := `
42+ name: "yml-filter"
43+ version: 1
44+ match:
45+ command: "echo"
46+ pipeline:
47+ - action: "keep_lines"
48+ pattern: "\\S"
49+ on_error: "passthrough"
50+ `
51+ if err := os .WriteFile (filepath .Join (dir , "echo.yml" ), []byte (validYAML ), 0644 ); err != nil {
52+ t .Fatal (err )
53+ }
54+
55+ filters , err := LoadUserFilters (dir )
56+ if err != nil {
57+ t .Fatalf ("unexpected error: %v" , err )
58+ }
59+ if len (filters ) != 1 {
60+ t .Fatalf ("got %d filters, want 1" , len (filters ))
61+ }
62+ if filters [0 ].Name != "yml-filter" {
63+ t .Errorf ("name = %q, want %q" , filters [0 ].Name , "yml-filter" )
64+ }
65+ }
66+
67+ func TestLoadUserFiltersBothExtensions (t * testing.T ) {
68+ dir := t .TempDir ()
69+
70+ yamlContent := `
71+ name: "yaml-filter"
72+ version: 1
73+ match:
74+ command: "cmd1"
75+ pipeline:
76+ - action: "head"
77+ n: 5
78+ on_error: "passthrough"
79+ `
80+ ymlContent := `
81+ name: "yml-filter"
82+ version: 1
83+ match:
84+ command: "cmd2"
85+ pipeline:
86+ - action: "tail"
87+ n: 3
88+ on_error: "passthrough"
89+ `
90+ if err := os .WriteFile (filepath .Join (dir , "a.yaml" ), []byte (yamlContent ), 0644 ); err != nil {
91+ t .Fatal (err )
92+ }
93+ if err := os .WriteFile (filepath .Join (dir , "b.yml" ), []byte (ymlContent ), 0644 ); err != nil {
94+ t .Fatal (err )
95+ }
96+
97+ filters , err := LoadUserFilters (dir )
98+ if err != nil {
99+ t .Fatalf ("unexpected error: %v" , err )
100+ }
101+ if len (filters ) != 2 {
102+ t .Fatalf ("got %d filters, want 2" , len (filters ))
103+ }
104+ }
105+
38106func TestLoadUserFiltersMissingDir (t * testing.T ) {
39107 filters , err := LoadUserFilters ("/tmp/nonexistent-snip-filters-test" )
40108 if err != nil {
0 commit comments