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

Function TestRoleUpdatedAtField

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

Source from the content-addressed store, hash-verified

3211}
3212
3213func TestRoleUpdatedAtField(t *testing.T) {
3214 rt := NewRestTester(t, &RestTesterConfig{
3215 CustomTestBucket: base.GetTestBucket(t),
3216 PersistentConfig: true,
3217 })
3218 defer rt.Close()
3219
3220 dbConfig := rt.NewDbConfig()
3221 RequireStatus(t, rt.CreateDatabase("db1", dbConfig), http.StatusCreated)
3222
3223 resp := rt.SendAdminRequest(http.MethodPost, "/db1/_role/", `{"name":"role1","admin_channels":["test"]}`)
3224 RequireStatus(t, resp, http.StatusCreated)
3225
3226 ds := rt.MetadataStore()
3227 metaKeys := rt.GetDatabase().MetadataKeys
3228 roleKey := metaKeys.RoleKey("role1")
3229 var user map[string]interface{}
3230 _, err := ds.Get(roleKey, &user)
3231 require.NoError(t, err)
3232
3233 // Check that the user has an updatedAt field
3234 require.NotNil(t, user["updated_at"])
3235 currTimeStr := user["updated_at"].(string)
3236 currTime, err := time.Parse(time.RFC3339, currTimeStr)
3237 require.NoError(t, err)
3238 require.NotNil(t, user["created_at"])
3239 currTimeCreatedStr := user["created_at"].(string)
3240 timeCreated, err := time.Parse(time.RFC3339, currTimeCreatedStr)
3241 require.NoError(t, err)
3242
3243 // avoid flake where update at seems to be the same (possibly running to fast)
3244 time.Sleep(500 * time.Nanosecond)
3245
3246 resp = rt.SendAdminRequest(http.MethodPut, "/db1/_role/role1", `{"name":"role1","admin_channels":["ABC"]}`)
3247 RequireStatus(t, resp, http.StatusOK)
3248
3249 user = map[string]interface{}{}
3250 _, err = ds.Get(roleKey, &user)
3251 require.NoError(t, err)
3252 newTimeStr := user["updated_at"].(string)
3253 newTime, err := time.Parse(time.RFC3339, newTimeStr)
3254 require.NoError(t, err)
3255 newCreatedStr := user["created_at"].(string)
3256 newCreated, err := time.Parse(time.RFC3339, newCreatedStr)
3257 require.NoError(t, err)
3258
3259 assert.Greater(t, newTime.UnixNano(), currTime.UnixNano())
3260 assert.Equal(t, timeCreated.UnixNano(), newCreated.UnixNano())
3261}
3262
3263func TestServerUUIDRuntimeServerConfig(t *testing.T) {
3264 testCases := []struct {

Callers

nothing calls this directly

Calls 12

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

Tested by

no test coverage detected