gitlab.com/greut/eclint@v0.5.2-0.20240402114752-14681fe6e0bf/integration_test.go (about)

     1  package eclint_test
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"testing"
     7  
     8  	"gitlab.com/greut/eclint"
     9  )
    10  
    11  func TestLintSimple(t *testing.T) {
    12  	ctx := context.TODO()
    13  
    14  	for _, err := range eclint.Lint(ctx, "testdata/simple/simple.txt") {
    15  		if err != nil {
    16  			t.Errorf("no errors where expected, got %s", err)
    17  		}
    18  	}
    19  }
    20  
    21  func TestLintMissing(t *testing.T) {
    22  	ctx := context.TODO()
    23  
    24  	errs := eclint.Lint(ctx, "testdata/missing/file")
    25  	if len(errs) == 0 {
    26  		t.Error("an error was expected, got none")
    27  	}
    28  
    29  	for _, err := range errs {
    30  		if err == nil {
    31  			t.Error("an error was expected")
    32  		}
    33  	}
    34  }
    35  
    36  func TestLintInvalid(t *testing.T) {
    37  	ctx := context.TODO()
    38  
    39  	errs := eclint.Lint(ctx, "testdata/invalid/.editorconfig")
    40  	if len(errs) == 0 {
    41  		t.Error("an error was expected, got none")
    42  	}
    43  
    44  	for _, err := range errs {
    45  		if err == nil {
    46  			t.Error("an error was expected")
    47  		}
    48  	}
    49  }
    50  
    51  func TestBlockCommentValidSpec(t *testing.T) {
    52  	ctx := context.TODO()
    53  
    54  	for _, f := range []string{"a", "b"} {
    55  		for _, err := range eclint.Lint(ctx, "./testdata/block_comments/"+f) {
    56  			if err != nil {
    57  				t.Fatalf("no errors where expected, got %s", err)
    58  			}
    59  		}
    60  	}
    61  }
    62  
    63  func TestBlockCommentInvalidSpec(t *testing.T) {
    64  	ctx := context.TODO()
    65  
    66  	for _, f := range []string{"c"} {
    67  		errs := eclint.Lint(ctx, "./testdata/block_comments/"+f)
    68  		if len(errs) == 0 {
    69  			t.Errorf("one error was expected, got none")
    70  		}
    71  	}
    72  }
    73  
    74  func TestLintCharset(t *testing.T) {
    75  	ctx := context.TODO()
    76  
    77  	for _, f := range []string{"ascii", "ascii2", "iso-8859-1", "utf8"} {
    78  		for _, err := range eclint.Lint(ctx, fmt.Sprintf("./testdata/charset/%s.txt", f)) {
    79  			if err != nil {
    80  				t.Errorf("no errors where expected, got %s", err)
    81  			}
    82  		}
    83  	}
    84  }
    85  
    86  func TestLintImages(t *testing.T) {
    87  	ctx := context.TODO()
    88  
    89  	for _, f := range []string{"edcon_tool.png", "edcon_tool.pdf", "hello.txt.gz"} {
    90  		for _, err := range eclint.Lint(ctx, "./testdata/images/"+f) {
    91  			if err != nil {
    92  				t.Fatalf("no errors where expected, got %s", err)
    93  			}
    94  		}
    95  	}
    96  }
    97  
    98  func TestMaxLineLengthValidSpec(t *testing.T) {
    99  	ctx := context.TODO()
   100  
   101  	for _, f := range []string{"a", "b"} {
   102  		for _, err := range eclint.Lint(ctx, "./testdata/max_line_length/"+f) {
   103  			if err != nil {
   104  				t.Fatalf("no errors where expected, got %s", err)
   105  			}
   106  		}
   107  	}
   108  }
   109  
   110  func TestMaxLineLengthInvalidSpec(t *testing.T) {
   111  	ctx := context.TODO()
   112  
   113  	for _, f := range []string{"c"} {
   114  		errs := eclint.Lint(ctx, "./testdata/max_line_length/"+f)
   115  		if len(errs) == 0 {
   116  			t.Errorf("one error was expected, got none")
   117  		}
   118  	}
   119  }
   120  
   121  func TestInsertFinalNewlineSpec(t *testing.T) {
   122  	ctx := context.TODO()
   123  
   124  	for _, f := range []string{"with_final_newline.txt", "no_final_newline.md"} {
   125  		for _, err := range eclint.Lint(ctx, "./testdata/insert_final_newline/"+f) {
   126  			if err != nil {
   127  				t.Fatalf("no errors where expected, got %s", err)
   128  			}
   129  		}
   130  	}
   131  }
   132  
   133  func TestInsertFinalNewlineInvalidSpec(t *testing.T) {
   134  	ctx := context.TODO()
   135  
   136  	for _, f := range []string{"no_final_newline.txt", "with_final_newline.md"} {
   137  		errs := eclint.Lint(ctx, "./testdata/insert_final_newline/"+f)
   138  		if len(errs) == 0 {
   139  			t.Errorf("one error was expected, got none")
   140  		}
   141  	}
   142  }