(t *testing.T)
| 62 | } |
| 63 | |
| 64 | func TestRequireAdmin(t *testing.T) { |
| 65 | ctx := base.TestCtx(t) |
| 66 | const funcSource = `function(doc, oldDoc) { requireAdmin() }` |
| 67 | runner, err := NewSyncRunner(ctx, funcSource, 0) |
| 68 | require.NoError(t, err) |
| 69 | var result interface{} |
| 70 | result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{}`), emptyMetaMap(), parse(t, `{}`)) |
| 71 | assertNotRejected(t, result) |
| 72 | result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{}`), emptyMetaMap(), parse(t, `{"name": ""}`)) |
| 73 | assertRejected(t, result, base.HTTPErrorf(http.StatusForbidden, base.SyncFnErrorAdminRequired)) |
| 74 | result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{}`), emptyMetaMap(), parse(t, `{"name": "GUEST"}`)) |
| 75 | assertRejected(t, result, base.HTTPErrorf(http.StatusForbidden, base.SyncFnErrorAdminRequired)) |
| 76 | result, _ = runner.Call(ctx, parse(t, `{}`), parse(t, `{}`), emptyMetaMap(), parse(t, `{"name": "beta"}`)) |
| 77 | assertRejected(t, result, base.HTTPErrorf(http.StatusForbidden, base.SyncFnErrorAdminRequired)) |
| 78 | } |
| 79 | |
| 80 | // Helpers |
| 81 | func assertRejected(t *testing.T, result interface{}, err *base.HTTPError) { |
nothing calls this directly
no test coverage detected