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

Function TestConfigsIncludeDefaults

rest/adminapitest/admin_api_test.go:2963–3037  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2961}
2962
2963func TestConfigsIncludeDefaults(t *testing.T) {
2964 base.ResetGlobalTestLogging(t)
2965 base.RequireNumTestBuckets(t, 2)
2966 base.SetUpTestLogging(t, base.LevelInfo, base.KeyHTTP)
2967
2968 ctx := base.TestCtx(t)
2969 // Get a test bucket, to use to create the database.
2970 tb := base.GetTestBucket(t)
2971 defer tb.Close(ctx)
2972
2973 // Start SG with no databases
2974 config := rest.BootstrapStartupConfigForTest(t)
2975 config.Logging.Console.LogKeys = []string{base.KeyDCP.String()}
2976 config.Logging.Console.LogLevel.Set(base.LevelDebug)
2977 config.Logging.Console.Enabled = base.Ptr(true) // only necessary for tests since they avoid InitLogging, normally this is inferred by InitLogging
2978
2979 sc, closeFn := rest.StartServerWithConfig(t, &config)
2980 defer closeFn()
2981
2982 resp := rest.BootstrapAdminRequest(t, sc, http.MethodPut, "/db/",
2983 fmt.Sprintf(
2984 `{"bucket": "%s", "num_index_replicas": 0, "enable_shared_bucket_access": %t, "use_views": %t}`,
2985 tb.GetName(), base.TestUseXattrs(), base.TestsDisableGSI(),
2986 ),
2987 )
2988 resp.RequireStatus(http.StatusCreated)
2989
2990 var dbConfig rest.DatabaseConfig
2991 resp = rest.BootstrapAdminRequest(t, sc, http.MethodGet, "/db/_config?include_runtime=true", "")
2992 resp.RequireStatus(http.StatusOK)
2993 err := base.JSONUnmarshal([]byte(resp.Body), &dbConfig)
2994 assert.NoError(t, err)
2995
2996 // Validate a few default values to ensure they are set
2997 assert.Equal(t, channels.DocChannelsSyncFunction, *dbConfig.Sync)
2998 assert.Equal(t, db.DefaultChannelCacheMaxNumber, *dbConfig.CacheConfig.ChannelCacheConfig.MaxNumber)
2999 assert.Equal(t, base.DefaultOldRevExpirySeconds, *dbConfig.OldRevExpirySeconds)
3000 assert.Equal(t, false, *dbConfig.StartOffline)
3001 assert.Equal(t, db.DefaultCompactInterval, time.Duration(*dbConfig.CompactIntervalDays)*24*time.Hour)
3002
3003 assert.Equal(t, dbConfig.Logging.Console.LogLevel.String(), base.LevelDebug.String())
3004 assert.Equal(t, dbConfig.Logging.Console.LogKeys, []string{base.KeyDCP.String()})
3005
3006 var runtimeServerConfigResponse rest.RunTimeServerConfigResponse
3007 resp = rest.BootstrapAdminRequest(t, sc, http.MethodGet, "/_config?include_runtime=true", "")
3008 resp.RequireStatus(http.StatusOK)
3009 err = base.JSONUnmarshal([]byte(resp.Body), &runtimeServerConfigResponse)
3010 assert.NoError(t, err)
3011
3012 require.Contains(t, runtimeServerConfigResponse.Databases, "db")
3013 runtimeServerConfigDatabase := runtimeServerConfigResponse.Databases["db"]
3014 assert.Equal(t, channels.DocChannelsSyncFunction, *runtimeServerConfigDatabase.Sync)
3015 assert.Equal(t, db.DefaultChannelCacheMaxNumber, *runtimeServerConfigDatabase.CacheConfig.ChannelCacheConfig.MaxNumber)
3016 assert.Equal(t, base.DefaultOldRevExpirySeconds, *runtimeServerConfigDatabase.OldRevExpirySeconds)
3017 assert.Equal(t, false, *runtimeServerConfigDatabase.StartOffline)
3018 assert.Equal(t, db.DefaultCompactInterval, time.Duration(*runtimeServerConfigDatabase.CompactIntervalDays)*24*time.Hour)
3019
3020 // Test unsupported options

Callers

nothing calls this directly

Calls 15

ResetGlobalTestLoggingFunction · 0.92
RequireNumTestBucketsFunction · 0.92
SetUpTestLoggingFunction · 0.92
TestCtxFunction · 0.92
GetTestBucketFunction · 0.92
PtrFunction · 0.92
StartServerWithConfigFunction · 0.92
BootstrapAdminRequestFunction · 0.92
TestUseXattrsFunction · 0.92
TestsDisableGSIFunction · 0.92
JSONUnmarshalFunction · 0.92

Tested by

no test coverage detected