Skip to content

Commit bf5b77f

Browse files
committed
fix tests and pr comments
1 parent 2280b49 commit bf5b77f

File tree

5 files changed

+15
-19
lines changed

5 files changed

+15
-19
lines changed

coderd/database/dbmem/dbmem.go

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -124,14 +124,6 @@ func (inTxMutex) RLock() {}
124124
func (inTxMutex) Unlock() {}
125125
func (inTxMutex) RUnlock() {}
126126

127-
// newUniqueContraintError copies the base unique constraint error and sets the constraint to the provided value.
128-
func newUniqueContraintError(uc database.UniqueConstraint) *pq.Error {
129-
newErr := *errUniqueConstraint
130-
newErr.Constraint = string(uc)
131-
132-
return &newErr
133-
}
134-
135127
// FakeQuerier replicates database functionality to enable quick testing. It's an exported type so that our test code
136128
// can do type checks.
137129
type FakeQuerier struct {
@@ -277,6 +269,13 @@ func validateDatabaseType(args interface{}) error {
277269
return nil
278270
}
279271

272+
func newUniqueConstraintError(uc database.UniqueConstraint) *pq.Error {
273+
newErr := *errUniqueConstraint
274+
newErr.Constraint = string(uc)
275+
276+
return &newErr
277+
}
278+
280279
func (*FakeQuerier) Ping(_ context.Context) (time.Duration, error) {
281280
return 0, nil
282281
}
@@ -3236,7 +3235,7 @@ func (q *FakeQuerier) GetProvisionerKeyByName(_ context.Context, arg database.Ge
32363235
defer q.mutex.RUnlock()
32373236

32383237
for _, key := range q.provisionerKeys {
3239-
if strings.ToLower(key.Name) == strings.ToLower(arg.Name) && key.OrganizationID == arg.OrganizationID {
3238+
if strings.EqualFold(key.Name, arg.Name) && key.OrganizationID == arg.OrganizationID {
32403239
return key, nil
32413240
}
32423241
}
@@ -6551,11 +6550,9 @@ func (q *FakeQuerier) InsertProvisionerKey(_ context.Context, arg database.Inser
65516550
q.mutex.Lock()
65526551
defer q.mutex.Unlock()
65536552

6554-
newErr := *errUniqueConstraint
6555-
newErr.Constraint = string(database.UniqueProvisionerKeysOrganizationIDNameIndex)
65566553
for _, key := range q.provisionerKeys {
6557-
if key.ID == arg.ID || (key.OrganizationID == arg.OrganizationID && key.Name == arg.Name) {
6558-
return database.ProvisionerKey{}, &newErr
6554+
if key.ID == arg.ID || (key.OrganizationID == arg.OrganizationID && strings.EqualFold(key.Name, arg.Name)) {
6555+
return database.ProvisionerKey{}, newUniqueConstraintError(database.UniqueProvisionerKeysOrganizationIDNameIndex)
65596556
}
65606557
}
65616558

coderd/database/migrations/000226_provisioner_keys.up.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ CREATE TABLE provisioner_keys (
66
hashed_secret bytea NOT NULL
77
);
88

9-
CREATE UNIQUE INDEX provisioner_keys_organization_id_name_idx ON provisioner_keys (organization_id, name);
9+
CREATE UNIQUE INDEX provisioner_keys_organization_id_name_idx ON provisioner_keys USING btree (organization_id, lower(name));

coderd/database/queries/provisionerkeys.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ FROM
2626
WHERE
2727
organization_id = $1
2828
AND
29-
name = lower(@name);
29+
lower(name) = lower(@name);
3030

3131
-- name: ListProvisionerKeysByOrganization :many
3232
SELECT

enterprise/coderd/provisionerkeys.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package coderd
22

33
import (
4-
"database/sql"
5-
"errors"
64
"fmt"
75
"net/http"
86

@@ -118,10 +116,11 @@ func (api *API) deleteProvisionerKey(rw http.ResponseWriter, r *http.Request) {
118116
Name: provisionerKey.Name,
119117
})
120118
if err != nil {
121-
if errors.Is(err, sql.ErrNoRows) {
119+
if httpapi.Is404Error(err) {
122120
httpapi.ResourceNotFound(rw)
123121
return
124122
}
123+
125124
httpapi.InternalServerError(rw, err)
126125
return
127126
}

enterprise/coderd/provisionerkeys_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func TestProvisionerKeys(t *testing.T) {
7777

7878
// org admin can conflict on name creating a provisioner key
7979
_, err = orgAdmin.CreateProvisionerKey(ctx, owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
80-
Name: "key",
80+
Name: "KEY", // still conflicts
8181
})
8282
require.ErrorContains(t, err, "already exists in organization")
8383

0 commit comments

Comments
 (0)