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

Function TestRequireAccess

channels/sync_runner_test.go:50–62  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

48}
49
50func TestRequireAccess(t *testing.T) {
51 ctx := base.TestCtx(t)
52 const funcSource = `function(doc, oldDoc) { requireAccess(oldDoc._access) }`
53 runner, err := NewSyncRunner(ctx, funcSource, 0)
54 require.NoError(t, err)
55 var result interface{}
56 result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{"_access": ["alpha"]}`), emptyMetaMap(), parse(t, `{"name": "", "channels": ["alpha"]}`))
57 assertNotRejected(t, result)
58 result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{"_access": ["beta", "gamma"]}`), emptyMetaMap(), parse(t, `{"name": "", "channels": ["beta"]}`))
59 assertNotRejected(t, result)
60 result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{"_access": ["delta"]}`), emptyMetaMap(), parse(t, `{"name": "", "channels": ["beta"]}`))
61 assertRejected(t, result, base.HTTPErrorf(http.StatusForbidden, base.SyncFnErrorMissingChannelAccess))
62}
63
64func TestRequireAdmin(t *testing.T) {
65 ctx := base.TestCtx(t)

Callers

nothing calls this directly

Calls 7

TestCtxFunction · 0.92
HTTPErrorfFunction · 0.92
NewSyncRunnerFunction · 0.85
parseFunction · 0.85
emptyMetaMapFunction · 0.85
assertNotRejectedFunction · 0.85
assertRejectedFunction · 0.85

Tested by

no test coverage detected