forked from TrueCloudLab/certificates
Add tests for Provisioner Admin API
This commit is contained in:
parent
43a78f495f
commit
5f224b729e
4 changed files with 1125 additions and 18 deletions
|
@ -487,7 +487,7 @@ type MockAuthority struct {
|
||||||
rekey func(oldCert *x509.Certificate, pk crypto.PublicKey) ([]*x509.Certificate, error)
|
rekey func(oldCert *x509.Certificate, pk crypto.PublicKey) ([]*x509.Certificate, error)
|
||||||
loadProvisionerByCertificate func(cert *x509.Certificate) (provisioner.Interface, error)
|
loadProvisionerByCertificate func(cert *x509.Certificate) (provisioner.Interface, error)
|
||||||
MockLoadProvisionerByName func(name string) (provisioner.Interface, error)
|
MockLoadProvisionerByName func(name string) (provisioner.Interface, error)
|
||||||
getProvisioners func(nextCursor string, limit int) (provisioner.List, string, error)
|
MockGetProvisioners func(nextCursor string, limit int) (provisioner.List, string, error)
|
||||||
revoke func(context.Context, *authority.RevokeOptions) error
|
revoke func(context.Context, *authority.RevokeOptions) error
|
||||||
getEncryptedKey func(kid string) (string, error)
|
getEncryptedKey func(kid string) (string, error)
|
||||||
getRoots func() ([]*x509.Certificate, error)
|
getRoots func() ([]*x509.Certificate, error)
|
||||||
|
@ -567,8 +567,8 @@ func (m *MockAuthority) Rekey(oldcert *x509.Certificate, pk crypto.PublicKey) ([
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *MockAuthority) GetProvisioners(nextCursor string, limit int) (provisioner.List, string, error) {
|
func (m *MockAuthority) GetProvisioners(nextCursor string, limit int) (provisioner.List, string, error) {
|
||||||
if m.getProvisioners != nil {
|
if m.MockGetProvisioners != nil {
|
||||||
return m.getProvisioners(nextCursor, limit)
|
return m.MockGetProvisioners(nextCursor, limit)
|
||||||
}
|
}
|
||||||
return m.ret1.(provisioner.List), m.ret2.(string), m.err
|
return m.ret1.(provisioner.List), m.ret2.(string), m.err
|
||||||
}
|
}
|
||||||
|
|
|
@ -1154,21 +1154,23 @@ func TestHandler_GetExternalAccountKeys(t *testing.T) {
|
||||||
assert.Equals(t, tc.err.StatusCode(), res.StatusCode)
|
assert.Equals(t, tc.err.StatusCode(), res.StatusCode)
|
||||||
assert.Equals(t, tc.err.Detail, adminErr.Detail)
|
assert.Equals(t, tc.err.Detail, adminErr.Detail)
|
||||||
assert.Equals(t, []string{"application/json"}, res.Header["Content-Type"])
|
assert.Equals(t, []string{"application/json"}, res.Header["Content-Type"])
|
||||||
} else {
|
return
|
||||||
body, err := io.ReadAll(res.Body)
|
|
||||||
res.Body.Close()
|
|
||||||
assert.FatalError(t, err)
|
|
||||||
|
|
||||||
response := GetExternalAccountKeysResponse{}
|
|
||||||
assert.FatalError(t, json.Unmarshal(bytes.TrimSpace(body), &response))
|
|
||||||
|
|
||||||
assert.Equals(t, []string{"application/json"}, res.Header["Content-Type"])
|
|
||||||
|
|
||||||
opts := []cmp.Option{cmpopts.IgnoreUnexported(linkedca.EABKey{}, timestamppb.Timestamp{})}
|
|
||||||
if !cmp.Equal(tc.resp, response, opts...) {
|
|
||||||
t.Errorf("h.GetExternalAccountKeys diff =\n%s", cmp.Diff(tc.resp, response, opts...))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body, err := io.ReadAll(res.Body)
|
||||||
|
res.Body.Close()
|
||||||
|
assert.FatalError(t, err)
|
||||||
|
|
||||||
|
response := GetExternalAccountKeysResponse{}
|
||||||
|
assert.FatalError(t, json.Unmarshal(bytes.TrimSpace(body), &response))
|
||||||
|
|
||||||
|
assert.Equals(t, []string{"application/json"}, res.Header["Content-Type"])
|
||||||
|
|
||||||
|
opts := []cmp.Option{cmpopts.IgnoreUnexported(linkedca.EABKey{}, timestamppb.Timestamp{})}
|
||||||
|
if !cmp.Equal(tc.resp, response, opts...) {
|
||||||
|
t.Errorf("h.GetExternalAccountKeys diff =\n%s", cmp.Diff(tc.resp, response, opts...))
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ func (h *Handler) GetProvisioners(w http.ResponseWriter, r *http.Request) {
|
||||||
cursor, limit, err := api.ParseCursor(r)
|
cursor, limit, err := api.ParseCursor(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.WriteError(w, admin.WrapError(admin.ErrorBadRequestType, err,
|
api.WriteError(w, admin.WrapError(admin.ErrorBadRequestType, err,
|
||||||
"error parsing cursor & limit query params"))
|
"error parsing cursor and limit from query params"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
1105
authority/admin/api/provisioner_test.go
Normal file
1105
authority/admin/api/provisioner_test.go
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue