26 lines
710 B
Go
26 lines
710 B
Go
package verification
|
|
|
|
import "testing"
|
|
|
|
func TestVerificationLockQuery(t *testing.T) {
|
|
const query = "SELECT * FROM verification_rate_limit WHERE dimension_key = ?"
|
|
for _, driver := range []string{"postgres", "mysql", "sqlite", "sqlite3"} {
|
|
t.Run(driver, func(t *testing.T) {
|
|
got, err := verificationLockQuery(driver, query)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
want := query
|
|
if driver == "postgres" || driver == "mysql" {
|
|
want += " FOR UPDATE"
|
|
}
|
|
if got != want {
|
|
t.Fatalf("query = %q, want %q", got, want)
|
|
}
|
|
})
|
|
}
|
|
if got, err := verificationLockQuery("unknown", query); err == nil || got != "" {
|
|
t.Fatalf("unsupported driver did not fail closed: %q, %v", got, err)
|
|
}
|
|
}
|