Skip to content

Commit 1eb5934

Browse files
committed
compares: add Zero and Empty
Fixes: #110
1 parent 626997c commit 1eb5934

File tree

5 files changed

+109
-3
lines changed

5 files changed

+109
-3
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,10 @@ assert.True(t, a >= b)
190190
assert.True(t, a < b)
191191
assert.True(t, a <= b)
192192
assert.False(t, a == b)
193+
assert.NotEmpty(t, a == b)
194+
assert.NotZero(t, a == b)
195+
assert.Zero(t, a == b)
196+
assert.Empty(t, a == b)
193197
// And so on...
194198

195199

analyzer/testdata/src/checkers-default/compares/compares_test.go

+48
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analyzer/testdata/src/checkers-default/compares/compares_test.go.golden

+48
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,54 @@ func TestComparesChecker(t *testing.T) {
1515

1616
// Invalid.
1717
{
18+
assert.Equal(t, a, b) // want "compares: use assert\\.Equal"
19+
assert.Equalf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Equalf"
20+
assert.NotEqual(t, a, b) // want "compares: use assert\\.NotEqual"
21+
assert.NotEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.NotEqualf"
22+
assert.Greater(t, a, b) // want "compares: use assert\\.Greater"
23+
assert.Greaterf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Greaterf"
24+
assert.GreaterOrEqual(t, a, b) // want "compares: use assert\\.GreaterOrEqual"
25+
assert.GreaterOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.GreaterOrEqualf"
26+
assert.Less(t, a, b) // want "compares: use assert\\.Less"
27+
assert.Lessf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Lessf"
28+
assert.LessOrEqual(t, a, b) // want "compares: use assert\\.LessOrEqual"
29+
assert.LessOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.LessOrEqualf"
30+
assert.NotEqual(t, a, b) // want "compares: use assert\\.NotEqual"
31+
assert.NotEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.NotEqualf"
32+
assert.Equal(t, a, b) // want "compares: use assert\\.Equal"
33+
assert.Equalf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Equalf"
34+
assert.LessOrEqual(t, a, b) // want "compares: use assert\\.LessOrEqual"
35+
assert.LessOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.LessOrEqualf"
36+
assert.Less(t, a, b) // want "compares: use assert\\.Less"
37+
assert.Lessf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Lessf"
38+
assert.GreaterOrEqual(t, a, b) // want "compares: use assert\\.GreaterOrEqual"
39+
assert.GreaterOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.GreaterOrEqualf"
40+
assert.Greater(t, a, b) // want "compares: use assert\\.Greater"
41+
assert.Greaterf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Greaterf"
42+
assert.Equal(t, a, b) // want "compares: use assert\\.Equal"
43+
assert.Equalf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Equalf"
44+
assert.NotEqual(t, a, b) // want "compares: use assert\\.NotEqual"
45+
assert.NotEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.NotEqualf"
46+
assert.Greater(t, a, b) // want "compares: use assert\\.Greater"
47+
assert.Greaterf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Greaterf"
48+
assert.GreaterOrEqual(t, a, b) // want "compares: use assert\\.GreaterOrEqual"
49+
assert.GreaterOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.GreaterOrEqualf"
50+
assert.Less(t, a, b) // want "compares: use assert\\.Less"
51+
assert.Lessf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Lessf"
52+
assert.LessOrEqual(t, a, b) // want "compares: use assert\\.LessOrEqual"
53+
assert.LessOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.LessOrEqualf"
54+
assert.NotEqual(t, a, b) // want "compares: use assert\\.NotEqual"
55+
assert.NotEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.NotEqualf"
56+
assert.Equal(t, a, b) // want "compares: use assert\\.Equal"
57+
assert.Equalf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Equalf"
58+
assert.LessOrEqual(t, a, b) // want "compares: use assert\\.LessOrEqual"
59+
assert.LessOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.LessOrEqualf"
60+
assert.Less(t, a, b) // want "compares: use assert\\.Less"
61+
assert.Lessf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Lessf"
62+
assert.GreaterOrEqual(t, a, b) // want "compares: use assert\\.GreaterOrEqual"
63+
assert.GreaterOrEqualf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.GreaterOrEqualf"
64+
assert.Greater(t, a, b) // want "compares: use assert\\.Greater"
65+
assert.Greaterf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Greaterf"
1866
assert.Equal(t, a, b) // want "compares: use assert\\.Equal"
1967
assert.Equalf(t, a, b, "msg with args %d %s", 42, "42") // want "compares: use assert\\.Equalf"
2068
assert.NotEqual(t, a, b) // want "compares: use assert\\.NotEqual"

internal/checkers/compares.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import (
1616
// assert.True(t, a < b)
1717
// assert.True(t, a <= b)
1818
// assert.False(t, a == b)
19+
// assert.NotEmpty(t, a == b)
20+
// assert.NotZero(t, a == b)
21+
// assert.Zero(t, a == b)
22+
// assert.Empty(t, a == b)
1923
// ...
2024
//
2125
// and requires
@@ -48,9 +52,9 @@ func (checker Compares) Check(pass *analysis.Pass, call *CallMeta) *analysis.Dia
4852
var tokenToProposedFn map[token.Token]string
4953

5054
switch call.Fn.NameFTrimmed {
51-
case "True":
55+
case "True", "NotZero", "NotEmpty":
5256
tokenToProposedFn = tokenToProposedFnInsteadOfTrue
53-
case "False":
57+
case "False", "Zero", "Empty":
5458
tokenToProposedFn = tokenToProposedFnInsteadOfFalse
5559
default:
5660
return nil

internal/testgen/gen_compares.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ func (g ComparesTestsGenerator) TemplateData() any {
3232

3333
var invalidAssertions []Assertion //nolint:prealloc
3434
for checker, oppositeChecker := range map[string]string{
35-
"True": "False",
35+
"True": "False",
36+
"NotEmpty": "Empty",
37+
"NotZero": "Zero",
3638
} {
3739
invalidAssertions = append(invalidAssertions,
3840
Assertion{Fn: checker, Argsf: "a == b", ReportMsgf: report, ProposedFn: "Equal", ProposedArgsf: "a, b"},

0 commit comments

Comments
 (0)