github.com/vanstinator/golangci-lint@v0.0.0-20240223191551-cc572f00d9d1/test/testdata/testifylint.go (about)

     1  //golangcitest:args -Etestifylint
     2  package testdata
     3  
     4  import (
     5  	"io"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  	"github.com/stretchr/testify/suite"
    11  )
    12  
    13  func TestTestifylint(t *testing.T) {
    14  	var (
    15  		predicate   bool
    16  		resultInt   int
    17  		resultFloat float64
    18  		arr         []string
    19  		err         error
    20  	)
    21  
    22  	assert.Equal(t, predicate, true)    // want "bool-compare: use assert\\.True"
    23  	assert.True(t, resultInt == 1)      // want "compares: use assert\\.Equal"
    24  	assert.Equal(t, len(arr), 0)        // want "empty: use assert\\.Empty"
    25  	assert.Error(t, err, io.EOF)        // want "error-is-as: invalid usage of assert\\.Error, use assert\\.ErrorIs instead"
    26  	assert.Nil(t, err)                  // want "error-nil: use assert\\.NoError"
    27  	assert.Equal(t, resultInt, 42)      // want "expected-actual: need to reverse actual and expected values"
    28  	assert.Equal(t, resultFloat, 42.42) // want "float-compare: use assert\\.InEpsilon \\(or InDelta\\)"
    29  	assert.Equal(t, len(arr), 10)       // want "len: use assert\\.Len"
    30  
    31  	assert.True(t, predicate)
    32  	assert.Equal(t, resultInt, 1) // want "expected-actual: need to reverse actual and expected values"
    33  	assert.Empty(t, arr)
    34  	assert.ErrorIs(t, err, io.EOF) // want "require-error: for error assertions use require"
    35  	assert.NoError(t, err)         // want "require-error: for error assertions use require"
    36  	assert.Equal(t, 42, resultInt)
    37  	assert.InEpsilon(t, 42.42, resultFloat, 0.0001)
    38  	assert.Len(t, arr, 10)
    39  
    40  	require.ErrorIs(t, err, io.EOF)
    41  	require.NoError(t, err)
    42  
    43  	t.Run("formatted", func(t *testing.T) {
    44  		assert.Equal(t, predicate, true, "message")         // want "bool-compare: use assert\\.True"
    45  		assert.Equal(t, predicate, true, "message %d", 42)  // want "bool-compare: use assert\\.True"
    46  		assert.Equalf(t, predicate, true, "message")        // want "bool-compare: use assert\\.Truef"
    47  		assert.Equalf(t, predicate, true, "message %d", 42) // want "bool-compare: use assert\\.Truef"
    48  	})
    49  
    50  	assert.Equal(t, arr, nil) // want "nil-compare: use assert\\.Nil"
    51  	assert.Nil(t, arr)
    52  
    53  	go func() {
    54  		if assert.Error(t, err) {
    55  			require.ErrorIs(t, err, io.EOF) // want "go-require: require must only be used in the goroutine running the test function"
    56  		}
    57  	}()
    58  }
    59  
    60  type SuiteExample struct {
    61  	suite.Suite
    62  }
    63  
    64  func TestSuiteExample(t *testing.T) {
    65  	suite.Run(t, new(SuiteExample))
    66  }
    67  
    68  func (s *SuiteExample) TestAll() {
    69  	var b bool
    70  	s.Assert().True(b) // want "suite-extra-assert-call: need to simplify the assertion to s\\.True"
    71  }