@@ -11,9 +11,11 @@ import (
1111"testing"
1212"time"
1313
14+ "github.com/brianvoe/gofakeit/v7"
1415"github.com/google/uuid"
1516"github.com/sqlc-dev/pqtype"
1617"github.com/stretchr/testify/require"
18+ "go.uber.org/mock/gomock"
1719"golang.org/x/xerrors"
1820
1921"cdr.dev/slog"
@@ -22,6 +24,7 @@ import (
2224"github.com/coder/coder/v2/coderd/database/db2sdk"
2325"github.com/coder/coder/v2/coderd/database/dbauthz"
2426"github.com/coder/coder/v2/coderd/database/dbgen"
27+ "github.com/coder/coder/v2/coderd/database/dbmock"
2528"github.com/coder/coder/v2/coderd/database/dbtestutil"
2629"github.com/coder/coder/v2/coderd/database/dbtime"
2730"github.com/coder/coder/v2/coderd/notifications"
@@ -204,14 +207,15 @@ func defaultIPAddress() pqtype.Inet {
204207}
205208
206209func (s * MethodTestSuite )TestAPIKey () {
207- s .Run ("DeleteAPIKeyByID" ,s .Subtest (func (db database.Store ,check * expects ) {
208- dbtestutil .DisableForeignKeysAndTriggers (s .T (),db )
209- key ,_ := dbgen .APIKey (s .T (),db , database.APIKey {})
210+ s .Run ("DeleteAPIKeyByID" ,s .Mocked (func (dbm * dbmock.MockStore ,faker * gofakeit.Faker ,check * expects ) {
211+ key := testutil .Fake (s .T (),faker , database.APIKey {})
212+ dbm .EXPECT ().GetAPIKeyByID (gomock .Any (),key .ID ).Return (key ,nil ).AnyTimes ()
213+ dbm .EXPECT ().DeleteAPIKeyByID (gomock .Any (),key .ID ).Return (nil ).AnyTimes ()
210214check .Args (key .ID ).Asserts (key ,policy .ActionDelete ).Returns ()
211215}))
212- s .Run ("GetAPIKeyByID" ,s .Subtest (func (db database. Store ,check * expects ) {
213- dbtestutil . DisableForeignKeysAndTriggers (s .T (),db )
214- key , _ := dbgen . APIKey ( s . T ( ),db , database. APIKey {} )
216+ s .Run ("GetAPIKeyByID" ,s .Mocked (func (dbm * dbmock. MockStore , faker * gofakeit. Faker ,check * expects ) {
217+ key := testutil . Fake (s .T (),faker , database. APIKey {} )
218+ dbm . EXPECT (). GetAPIKeyByID ( gomock . Any ( ),key . ID ). Return ( key , nil ). AnyTimes ( )
215219check .Args (key .ID ).Asserts (key ,policy .ActionRead ).Returns (key )
216220}))
217221s .Run ("GetAPIKeyByName" ,s .Subtest (func (db database.Store ,check * expects ) {
@@ -234,14 +238,12 @@ func (s *MethodTestSuite) TestAPIKey() {
234238Asserts (a ,policy .ActionRead ,b ,policy .ActionRead ).
235239Returns (slice .New (a ,b ))
236240}))
237- s .Run ("GetAPIKeysByUserID" ,s .Subtest (func (db database.Store ,check * expects ) {
238- u1 := dbgen .User (s .T (),db , database.User {})
239- u2 := dbgen .User (s .T (),db , database.User {})
240-
241- keyA ,_ := dbgen .APIKey (s .T (),db , database.APIKey {UserID :u1 .ID ,LoginType :database .LoginTypeToken ,TokenName :"key-a" })
242- keyB ,_ := dbgen .APIKey (s .T (),db , database.APIKey {UserID :u1 .ID ,LoginType :database .LoginTypeToken ,TokenName :"key-b" })
243- _ ,_ = dbgen .APIKey (s .T (),db , database.APIKey {UserID :u2 .ID ,LoginType :database .LoginTypeToken })
241+ s .Run ("GetAPIKeysByUserID" ,s .Mocked (func (dbm * dbmock.MockStore ,faker * gofakeit.Faker ,check * expects ) {
242+ u1 := testutil .Fake (s .T (),faker , database.User {})
243+ keyA := testutil .Fake (s .T (),faker , database.APIKey {UserID :u1 .ID ,LoginType :database .LoginTypeToken ,TokenName :"key-a" })
244+ keyB := testutil .Fake (s .T (),faker , database.APIKey {UserID :u1 .ID ,LoginType :database .LoginTypeToken ,TokenName :"key-b" })
244245
246+ dbm .EXPECT ().GetAPIKeysByUserID (gomock .Any (),gomock .Any ()).Return (slice .New (keyA ,keyB ),nil ).AnyTimes ()
245247check .Args (database.GetAPIKeysByUserIDParams {LoginType :database .LoginTypeToken ,UserID :u1 .ID }).
246248Asserts (keyA ,policy .ActionRead ,keyB ,policy .ActionRead ).
247249Returns (slice .New (keyA ,keyB ))