Skip to content

Commit f9e9d11

Browse files
committed
add support for prebuilds user to dbmem
1 parent 1042c39 commit f9e9d11

File tree

2 files changed

+29
-10
lines changed

2 files changed

+29
-10
lines changed

coderd/database/dbmem/dbmem.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"golang.org/x/xerrors"
2424

2525
"github.com/coder/coder/v2/coderd/notifications/types"
26+
"github.com/coder/coder/v2/coderd/prebuilds"
2627

2728
"github.com/coder/coder/v2/coderd/database"
2829
"github.com/coder/coder/v2/coderd/database/dbtime"
@@ -153,6 +154,21 @@ func New() database.Store {
153154
panic(xerrors.Errorf("failed to create psk provisioner key: %w", err))
154155
}
155156

157+
q.mutex.Lock()
158+
q.data.users = append(q.data.users, database.User{
159+
ID: prebuilds.SystemUserID,
160+
Email: "prebuilds@coder.com",
161+
Username: "prebuilds",
162+
CreatedAt: dbtime.Now(),
163+
UpdatedAt: dbtime.Now(),
164+
Status: "active",
165+
LoginType: "none",
166+
HashedPassword: []byte{},
167+
IsSystem: true,
168+
Deleted: false,
169+
})
170+
q.mutex.Unlock()
171+
156172
return q
157173
}
158174

@@ -439,6 +455,7 @@ func convertUsers(users []database.User, count int64) []database.GetUsersRow {
439455
Deleted: u.Deleted,
440456
LastSeenAt: u.LastSeenAt,
441457
Count: count,
458+
IsSystem: u.IsSystem,
442459
}
443460
}
444461

@@ -6608,6 +6625,12 @@ func (q *FakeQuerier) GetUsers(_ context.Context, params database.GetUsersParams
66086625
users = users[:params.LimitOpt]
66096626
}
66106627

6628+
if !params.IncludeSystem {
6629+
users = slices.DeleteFunc(users, func(u database.User) bool {
6630+
return u.IsSystem
6631+
})
6632+
}
6633+
66116634
return convertUsers(users, int64(beforePageCount)), nil
66126635
}
66136636

@@ -8888,6 +8911,7 @@ func (q *FakeQuerier) InsertUser(_ context.Context, arg database.InsertUserParam
88888911
Status: status,
88898912
RBACRoles: arg.RBACRoles,
88908913
LoginType: arg.LoginType,
8914+
IsSystem: false,
88918915
}
88928916
q.users = append(q.users, user)
88938917
sort.Slice(q.users, func(i, j int) bool {

coderd/database/querier_test.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,9 +1367,6 @@ func TestUserLastSeenFilter(t *testing.T) {
13671367

13681368
func TestGetUsers_IncludeSystem(t *testing.T) {
13691369
t.Parallel()
1370-
if !dbtestutil.WillUsePostgres() {
1371-
t.Skip("test only supports postgres")
1372-
}
13731370

13741371
tests := []struct {
13751372
name string
@@ -1395,12 +1392,10 @@ func TestGetUsers_IncludeSystem(t *testing.T) {
13951392

13961393
ctx := testutil.Context(t, testutil.WaitLong)
13971394

1398-
sqlDB := testSQLDB(t)
1399-
// Given: a system user introduced by migration coderd/database/migrations/00030*_system_user.up.sql
1400-
err := migrations.Up(sqlDB)
1401-
require.NoError(t, err, "migrations")
1402-
1403-
db := database.New(sqlDB)
1395+
// Given: a system user
1396+
// postgres: introduced by migration coderd/database/migrations/00030*_system_user.up.sql
1397+
// dbmem: created in dbmem/dbmem.go
1398+
db, _ := dbtestutil.NewDB(t)
14041399
other := dbgen.User(t, db, database.User{})
14051400
users, err := db.GetUsers(ctx, database.GetUsersParams{
14061401
IncludeSystem: tt.includeSystem,
@@ -1417,7 +1412,7 @@ func TestGetUsers_IncludeSystem(t *testing.T) {
14171412
require.Equal(t, prebuilds.SystemUserID, u.ID)
14181413
} else {
14191414
foundRegularUser = true
1420-
require.Equal(t, other.ID, u.ID)
1415+
require.Equalf(t, other.ID.String(), u.ID.String(), "found unexpected regular user")
14211416
}
14221417
}
14231418

0 commit comments

Comments
 (0)