11package metadata
22
3- import "testing"
3+ import (
4+ "testing"
5+ )
46
57func 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