MCPcopy
hub / github.com/ory/kratos / TestHandler

Function TestHandler

identity/handler_test.go:47–2527  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

45var ignoreDefault = []string{"id", "schema_url", "state_changed_at", "created_at", "updated_at"}
46
47func TestHandler(t *testing.T) {
48 t.Parallel()
49
50 _, reg := pkg.NewFastRegistryWithMocks(t,
51 configx.WithValues(testhelpers.IdentitySchemasConfig(map[string]string{
52 "default": "file://./stub/identity.schema.json",
53 "customer": "file://./stub/handler/customer.schema.json",
54 "multiple_emails": "file://./stub/handler/multiple_emails.schema.json",
55 "employee": "file://./stub/handler/employee.schema.json",
56 })),
57 )
58
59 // Start kratos server
60 publicTS, adminTS := testhelpers.NewKratosServerWithCSRF(t, reg)
61
62 mockServerURL := urlx.ParseOrPanic(publicTS.URL)
63 defaultSchemaExternalURL := (&schema.Schema{ID: "default"}).SchemaURL(mockServerURL).String()
64
65 getFull := func(t *testing.T, base *httptest.Server, href string, expectCode int) (gjson.Result, *http.Response) {
66 t.Helper()
67 res, err := base.Client().Get(base.URL + href)
68 require.NoError(t, err)
69 body, err := io.ReadAll(res.Body)
70 require.NoError(t, err)
71 require.NoError(t, res.Body.Close())
72
73 require.EqualValuesf(t, expectCode, res.StatusCode, "%s", body)
74 return gjson.ParseBytes(body), res
75 }
76
77 get := func(t *testing.T, base *httptest.Server, href string, expectCode int) gjson.Result {
78 t.Helper()
79 res, _ := getFull(t, base, href, expectCode)
80 return res
81 }
82
83 remove := func(t *testing.T, base *httptest.Server, href string, expectCode int) {
84 t.Helper()
85 req, err := http.NewRequest("DELETE", base.URL+href, nil)
86 require.NoError(t, err)
87
88 res, err := base.Client().Do(req)
89 require.NoError(t, err)
90 defer func() { _ = res.Body.Close() }()
91
92 require.EqualValues(t, expectCode, res.StatusCode, "%s", ioutilx.MustReadAll(res.Body))
93 }
94
95 send := func(t *testing.T, base *httptest.Server, method, href string, expectCode int, send interface{}) gjson.Result {
96 t.Helper()
97 var b bytes.Buffer
98 switch raw := send.(type) {
99 case json.RawMessage:
100 b = *bytes.NewBuffer(raw)
101 default:
102 if send != nil {
103 require.NoError(t, json.NewEncoder(&b).Encode(send))
104 }

Callers

nothing calls this directly

Calls 15

SetCredentialsMethod · 0.95
NewFastRegistryWithMocksFunction · 0.92
IdentitySchemasConfigFunction · 0.92
NewKratosServerWithCSRFFunction · 0.92
NewUUIDFunction · 0.92
CompareFunction · 0.92
ParseUUIDFunction · 0.92
TraitsTypeAlias · 0.92
NewIdentityFunction · 0.92
SubmitLoginFormFunction · 0.92
OIDCUniqueIDFunction · 0.92

Tested by

no test coverage detected