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  }