MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestUserUpdatedAtField

Function TestUserUpdatedAtField

rest/config_test.go:3162–3211  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3160}
3161
3162func TestUserUpdatedAtField(t *testing.T) {
3163 rt := NewRestTester(t, &RestTesterConfig{
3164 CustomTestBucket: base.GetTestBucket(t),
3165 PersistentConfig: true,
3166 })
3167 defer rt.Close()
3168
3169 dbConfig := rt.NewDbConfig()
3170 RequireStatus(t, rt.CreateDatabase("db1", dbConfig), http.StatusCreated)
3171
3172 metaKeys := rt.GetDatabase().MetadataKeys
3173
3174 resp := rt.SendAdminRequest(http.MethodPost, "/db1/_user/", `{"name":"user1","password":"password"}`)
3175 RequireStatus(t, resp, http.StatusCreated)
3176
3177 ds := rt.MetadataStore()
3178 var user map[string]interface{}
3179 userKey := metaKeys.UserKey("user1")
3180 _, err := ds.Get(userKey, &user)
3181 require.NoError(t, err)
3182
3183 // Check that the user has an updatedAt field
3184 require.NotNil(t, user["updated_at"])
3185 currTimeStr := user["updated_at"].(string)
3186 currTime, err := time.Parse(time.RFC3339, currTimeStr)
3187 require.NoError(t, err)
3188 require.NotNil(t, user["created_at"])
3189 currTimeCreatedStr := user["created_at"].(string)
3190 timeCreated, err := time.Parse(time.RFC3339, currTimeCreatedStr)
3191 require.NoError(t, err)
3192
3193 // avoid flake where update at seems to be the same (possibly running to fast)
3194 time.Sleep(500 * time.Nanosecond)
3195
3196 resp = rt.SendAdminRequest(http.MethodPut, "/db1/_user/user1", `{"name":"user1","password":"password1"}`)
3197 RequireStatus(t, resp, http.StatusOK)
3198
3199 user = map[string]interface{}{}
3200 _, err = ds.Get(userKey, &user)
3201 require.NoError(t, err)
3202 newTimeStr := user["updated_at"].(string)
3203 newTime, err := time.Parse(time.RFC3339, newTimeStr)
3204 require.NoError(t, err)
3205 newCreatedStr := user["created_at"].(string)
3206 newCreated, err := time.Parse(time.RFC3339, newCreatedStr)
3207 require.NoError(t, err)
3208
3209 assert.Greater(t, newTime.UnixNano(), currTime.UnixNano())
3210 assert.Equal(t, timeCreated.UnixNano(), newCreated.UnixNano())
3211}
3212
3213func TestRoleUpdatedAtField(t *testing.T) {
3214 rt := NewRestTester(t, &RestTesterConfig{

Callers

nothing calls this directly

Calls 12

CloseMethod · 0.95
NewDbConfigMethod · 0.95
CreateDatabaseMethod · 0.95
GetDatabaseMethod · 0.95
SendAdminRequestMethod · 0.95
MetadataStoreMethod · 0.95
GetTestBucketFunction · 0.92
NewRestTesterFunction · 0.85
RequireStatusFunction · 0.85
UserKeyMethod · 0.80
GetMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected