github.com/errata-ai/vale/v3@v3.4.2/internal/check/existence_test.go (about) 1 package check 2 3 import ( 4 "testing" 5 6 "github.com/errata-ai/vale/v3/internal/core" 7 "github.com/errata-ai/vale/v3/internal/nlp" 8 ) 9 10 func makeExistence(tokens []string) (*Existence, error) { 11 def := baseCheck{"tokens": tokens} 12 13 cfg, err := core.NewConfig(&core.CLIFlags{}) 14 if err != nil { 15 return nil, err 16 } 17 18 rule, err := NewExistence(cfg, def, "") 19 if err != nil { 20 return nil, err 21 } 22 23 return &rule, nil 24 } 25 26 func TestExistence(t *testing.T) { 27 rule, err := makeExistence([]string{"test"}) 28 if err != nil { 29 t.Fatal(err) 30 } 31 32 cfg, err := core.NewConfig(&core.CLIFlags{}) 33 if err != nil { 34 t.Fatal(err) 35 } 36 37 file, err := core.NewFile("", cfg) 38 if err != nil { 39 t.Fatal(err) 40 } 41 42 alerts, _ := rule.Run(nlp.NewBlock("", "This is a test.", ""), file) 43 if len(alerts) != 1 { 44 t.Errorf("expected one alert, not %v", alerts) 45 } 46 } 47 48 func FuzzExistenceInit(f *testing.F) { 49 f.Add("hello") 50 f.Fuzz(func(t *testing.T, s string) { 51 _, _ = makeExistence([]string{s}) 52 }) 53 } 54 55 func FuzzExistence(f *testing.F) { 56 rule, err := makeExistence([]string{"test"}) 57 if err != nil { 58 f.Fatal(err) 59 } 60 61 cfg, err := core.NewConfig(&core.CLIFlags{}) 62 if err != nil { 63 f.Fatal(err) 64 } 65 66 file, err := core.NewFile("", cfg) 67 if err != nil { 68 f.Fatal(err) 69 } 70 71 f.Add("hello") 72 f.Fuzz(func(t *testing.T, s string) { 73 _, _ = rule.Run(nlp.NewBlock("", s, ""), file) 74 }) 75 }