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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy