Skip to content

Commit 1213fe2

Browse files
committed
Updated tests to cover new vet disabling behaviour.
1 parent 7193fc5 commit 1213fe2

File tree

4 files changed

+82
-6
lines changed

4 files changed

+82
-6
lines changed
Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,29 @@
1-
-- name: SkipVet :exec
1+
-- name: RunVetAll :exec
2+
SELECT true;
3+
4+
-- name: SkipVetAll :exec
25
-- @sqlc-vet-disable
36
SELECT true;
47

5-
-- name: RunVet :exec
8+
-- name: SkipVetSingleLine :exec
9+
-- @sqlc-vet-disable always-fail no-exec
10+
SELECT true;
11+
12+
-- name: SkipVetMultiLine :exec
13+
-- @sqlc-vet-disable always-fail
14+
-- @sqlc-vet-disable no-exec
15+
SELECT true;
16+
17+
-- name: SkipVet_always_fail :exec
18+
-- @sqlc-vet-disable always-fail
19+
SELECT true;
20+
21+
-- name: SkipVet_no_exec :exec
22+
-- @sqlc-vet-disable no-exec
23+
SELECT true;
24+
25+
-- name: SkipVetInvalidRule :exec
26+
-- @sqlc-vet-disable always-fail
27+
-- @sqlc-vet-disable block-delete
28+
-- @sqlc-vet-disable no-exec
629
SELECT true;

internal/endtoend/testdata/vet_disable/sqlc.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,13 @@ sql:
99
out: "db"
1010
rules:
1111
- always-fail
12+
- no-exec
1213
rules:
1314
- name: always-fail
1415
message: "Fail"
1516
rule: "true"
17+
18+
- name: no-exec
19+
message: "don't use exec"
20+
rule: |
21+
query.cmd == "exec"
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
query.sql: RunVet: always-fail: Fail
1+
query.sql: RunVetAll: always-fail: Fail
2+
query.sql: RunVetAll: no-exec: don't use exec
3+
query.sql: SkipVet_always_fail: no-exec: don't use exec
4+
query.sql: SkipVet_no_exec: always-fail: Fail
5+
query.sql: SkipVetInvalidRule: rule-check error: rule "block-delete" does not exist in the config file

internal/metadata/meta_test.go

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package metadata
22

3-
import "testing"
3+
import (
4+
"testing"
5+
)
46

57
func TestParseQueryNameAndType(t *testing.T) {
68

@@ -77,7 +79,7 @@ func TestParseQueryParams(t *testing.T) {
7779
" @param @invalid UUID ",
7880
},
7981
} {
80-
params, _, err := ParseParamsAndFlags(comments)
82+
params, _, _, err := ParseParamsAndFlags(comments)
8183
if err != nil {
8284
t.Errorf("expected comments to parse, got err: %s", err)
8385
}
@@ -123,7 +125,7 @@ func TestParseQueryFlags(t *testing.T) {
123125
" @param @flag-bar UUID",
124126
},
125127
} {
126-
_, flags, err := ParseParamsAndFlags(comments)
128+
_, flags, _, err := ParseParamsAndFlags(comments)
127129
if err != nil {
128130
t.Errorf("expected comments to parse, got err: %s", err)
129131
}
@@ -137,3 +139,44 @@ func TestParseQueryFlags(t *testing.T) {
137139
}
138140
}
139141
}
142+
143+
func TestParseQueryRuleBlocklist(t *testing.T) {
144+
for _, comments := range [][]string{
145+
{
146+
" name: CreateFoo :one",
147+
" @sqlc-vet-disable sqlc/db-prepare delete-without-where ",
148+
},
149+
{
150+
" name: CreateFoo :one ",
151+
" @sqlc-vet-disable sqlc/db-prepare ",
152+
" @sqlc-vet-disable delete-without-where ",
153+
},
154+
{
155+
" name: CreateFoo :one",
156+
" @sqlc-vet-disable sqlc/db-prepare ",
157+
" update-without where",
158+
" @sqlc-vet-disable delete-without-where ",
159+
},
160+
} {
161+
_, flags, ruleBlocklist, err := ParseParamsAndFlags(comments)
162+
if err != nil {
163+
t.Errorf("expected comments to parse, got err: %s", err)
164+
}
165+
166+
if !flags["@sqlc-vet-disable"] {
167+
t.Errorf("expected @sqlc-vet-disable flag not found")
168+
}
169+
170+
if _, ok := ruleBlocklist["sqlc/db-prepare"]; !ok {
171+
t.Errorf("expected rule not found in blocklist")
172+
}
173+
174+
if _, ok := ruleBlocklist["delete-without-where"]; !ok {
175+
t.Errorf("expected rule not found in blocklist")
176+
}
177+
178+
if _, ok := ruleBlocklist["update-without-where"]; ok {
179+
t.Errorf("unexpected rule found in blocklist")
180+
}
181+
}
182+
}

0 commit comments

Comments
 (0)