Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitea03587

Browse files
committed
tests
1 parentdadd760 commitea03587

File tree

4 files changed

+41
-12
lines changed

4 files changed

+41
-12
lines changed

‎coderd/database/dbmem/dbmem.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6513,9 +6513,11 @@ func (q *FakeQuerier) InsertProvisionerKey(_ context.Context, arg database.Inser
65136513
q.mutex.Lock()
65146514
deferq.mutex.Unlock()
65156515

6516+
newErr:=*errUniqueConstraint
6517+
newErr.Constraint=string(database.UniqueProvisionerKeysOrganizationIDNameKey)
65166518
for_,key:=rangeq.provisionerKeys {
65176519
ifkey.ID==arg.ID|| (key.OrganizationID==arg.OrganizationID&&key.Name==arg.Name) {
6518-
return database.ProvisionerKey{},errUniqueConstraint
6520+
return database.ProvisionerKey{},&newErr
65196521
}
65206522
}
65216523

‎coderd/provisionerkeys.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package coderd
33
import (
44
"database/sql"
55
"errors"
6+
"fmt"
67
"net/http"
78

89
"github.com/coder/coder/v2/coderd/database"
@@ -21,13 +22,45 @@ func (api *API) postProvisionerKey(rw http.ResponseWriter, r *http.Request) {
2122
return
2223
}
2324

25+
ifreq.Name=="" {
26+
httpapi.Write(ctx,rw,http.StatusBadRequest, codersdk.Response{
27+
Message:"Name is required",
28+
Validations: []codersdk.ValidationError{
29+
{
30+
Field:"name",
31+
Detail:"Name is required",
32+
},
33+
},
34+
})
35+
return
36+
}
37+
38+
iflen(req.Name)>64 {
39+
httpapi.Write(ctx,rw,http.StatusBadRequest, codersdk.Response{
40+
Message:"Name must be at most 64 characters",
41+
Validations: []codersdk.ValidationError{
42+
{
43+
Field:"name",
44+
Detail:"Name must be at most 64 characters",
45+
},
46+
},
47+
})
48+
return
49+
}
50+
2451
params,token,err:=provisionerkey.New(organization.ID,req.Name)
2552
iferr!=nil {
2653
httpapi.InternalServerError(rw,err)
2754
return
2855
}
2956

3057
_,err=api.Database.InsertProvisionerKey(ctx,params)
58+
ifdatabase.IsUniqueViolation(err,database.UniqueProvisionerKeysOrganizationIDNameKey) {
59+
httpapi.Write(ctx,rw,http.StatusConflict, codersdk.Response{
60+
Message:fmt.Sprintf("Provisioner key with name '%s' already exists in organization",req.Name),
61+
})
62+
return
63+
}
3164
iferr!=nil {
3265
httpapi.InternalServerError(rw,err)
3366
return

‎coderd/provisionerkeys_test.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,25 +70,19 @@ func TestProvisionerKeys(t *testing.T) {
7070
_,err=orgAdmin.CreateProvisionerKey(ctx,owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
7171
Name:"key",
7272
})
73-
require.ErrorContains(t,err,"already exists")
74-
75-
// key name cannot have special characters
76-
_,err=orgAdmin.CreateProvisionerKey(ctx,owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
77-
Name:"key with spaces",
78-
})
79-
require.ErrorContains(t,err,"org admin create provisioner key")
73+
require.ErrorContains(t,err,"already exists in organization")
8074

8175
// key name cannot be too long
8276
_,err=orgAdmin.CreateProvisionerKey(ctx,owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
83-
Name:"key with spaces",
77+
Name:"Everyone please pass your watermelons to the front of the pool, the storm is approaching.",
8478
})
85-
require.ErrorContains(t,err,"less than 64 characters")
79+
require.ErrorContains(t,err,"must be at most 64 characters")
8680

8781
// key name cannot be empty
8882
_,err=orgAdmin.CreateProvisionerKey(ctx,owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
8983
Name:"",
9084
})
91-
require.ErrorContains(t,err,"cannot be empty")
85+
require.ErrorContains(t,err,"is required")
9286

9387
// org admin can list provisioner keys
9488
keys,err=orgAdmin.ListProvisionerKeys(ctx,owner.OrganizationID)

‎codersdk/provisionerdaemons.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ type CreateProvisionerKeyRequest struct {
277277
}
278278

279279
typeCreateProvisionerKeyResponsestruct {
280-
Keystring
280+
Keystring`json:"key"`
281281
}
282282

283283
// CreateProvisionerKey creates a new provisioner key for an organization.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp