MCPcopy Index your code
hub / github.com/coder/coder / TestOAuth2ProviderApps

Method TestOAuth2ProviderApps

coderd/database/dbauthz/dbauthz_test.go:5509–5632  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

5507}
5508
5509func (s *MethodTestSuite) TestOAuth2ProviderApps() {
5510 s.Run("GetOAuth2ProviderApps", s.Subtest(func(db database.Store, check *expects) {
5511 apps := []database.OAuth2ProviderApp{
5512 dbgen.OAuth2ProviderApp(s.T(), db, database.OAuth2ProviderApp{Name: "first"}),
5513 dbgen.OAuth2ProviderApp(s.T(), db, database.OAuth2ProviderApp{Name: "last"}),
5514 }
5515 check.Args().Asserts(rbac.ResourceOauth2App, policy.ActionRead).Returns(apps)
5516 }))
5517 s.Run("GetOAuth2ProviderAppByID", s.Subtest(func(db database.Store, check *expects) {
5518 app := dbgen.OAuth2ProviderApp(s.T(), db, database.OAuth2ProviderApp{})
5519 check.Args(app.ID).Asserts(rbac.ResourceOauth2App, policy.ActionRead).Returns(app)
5520 }))
5521 s.Run("GetOAuth2ProviderAppsByUserID", s.Subtest(func(db database.Store, check *expects) {
5522 dbtestutil.DisableForeignKeysAndTriggers(s.T(), db)
5523 user := dbgen.User(s.T(), db, database.User{})
5524 key, _ := dbgen.APIKey(s.T(), db, database.APIKey{
5525 UserID: user.ID,
5526 })
5527 // Use a fixed timestamp for consistent test results across all database types
5528 fixedTime := time.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC)
5529 app := dbgen.OAuth2ProviderApp(s.T(), db, database.OAuth2ProviderApp{
5530 CreatedAt: fixedTime,
5531 UpdatedAt: fixedTime,
5532 })
5533 _ = dbgen.OAuth2ProviderApp(s.T(), db, database.OAuth2ProviderApp{
5534 CreatedAt: fixedTime,
5535 UpdatedAt: fixedTime,
5536 })
5537 secret := dbgen.OAuth2ProviderAppSecret(s.T(), db, database.OAuth2ProviderAppSecret{
5538 AppID: app.ID,
5539 })
5540 for i := 0; i < 5; i++ {
5541 _ = dbgen.OAuth2ProviderAppToken(s.T(), db, database.OAuth2ProviderAppToken{
5542 AppSecretID: secret.ID,
5543 APIKeyID: key.ID,
5544 UserID: user.ID,
5545 HashPrefix: []byte(fmt.Sprintf("%d", i)),
5546 })
5547 }
5548 expectedApp := app
5549 expectedApp.CreatedAt = fixedTime
5550 expectedApp.UpdatedAt = fixedTime
5551 check.Args(user.ID).Asserts(rbac.ResourceOauth2AppCodeToken.WithOwner(user.ID.String()), policy.ActionRead).Returns([]database.GetOAuth2ProviderAppsByUserIDRow{
5552 {
5553 OAuth2ProviderApp: expectedApp,
5554 TokenCount: 5,
5555 },
5556 })
5557 }))
5558 s.Run("InsertOAuth2ProviderApp", s.Subtest(func(db database.Store, check *expects) {
5559 check.Args(database.InsertOAuth2ProviderAppParams{}).Asserts(rbac.ResourceOauth2App, policy.ActionCreate)
5560 }))
5561 s.Run("UpdateOAuth2ProviderAppByID", s.Subtest(func(db database.Store, check *expects) {
5562 dbtestutil.DisableForeignKeysAndTriggers(s.T(), db)
5563 app := dbgen.OAuth2ProviderApp(s.T(), db, database.OAuth2ProviderApp{})
5564 app.Name = "my-new-name"
5565 app.UpdatedAt = dbtestutil.NowInDefaultTimezone()
5566 check.Args(database.UpdateOAuth2ProviderAppByIDParams{

Callers

nothing calls this directly

Calls 14

SubtestMethod · 0.95
OAuth2ProviderAppFunction · 0.92
UserFunction · 0.92
APIKeyFunction · 0.92
OAuth2ProviderAppSecretFunction · 0.92
OAuth2ProviderAppTokenFunction · 0.92
NowInDefaultTimezoneFunction · 0.92
ReturnsMethod · 0.80
AssertsMethod · 0.80
ArgsMethod · 0.80
WithOwnerMethod · 0.80

Tested by

no test coverage detected