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

Function TestAccessFunctionValidation

db/database_test.go:2461–2493  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2459}
2460
2461func TestAccessFunctionValidation(t *testing.T) {
2462
2463 db, ctx := setupTestDB(t)
2464 defer db.Close(ctx)
2465 collection, ctx := GetSingleDatabaseCollectionWithUser(ctx, t, db)
2466
2467 _, err := collection.UpdateSyncFun(ctx, `function(doc){access(doc.users,doc.userChannels);}`)
2468 require.NoError(t, err)
2469
2470 body := Body{"users": []string{"username"}, "userChannels": []string{"BBC1"}}
2471 _, _, err = collection.Put(ctx, "doc1", body)
2472 assert.NoError(t, err, "")
2473
2474 body = Body{"users": []string{"role:rolename"}, "userChannels": []string{"BBC1"}}
2475 _, _, err = collection.Put(ctx, "doc2", body)
2476 assert.NoError(t, err, "")
2477
2478 body = Body{"users": []string{"bad,username"}, "userChannels": []string{"BBC1"}}
2479 _, _, err = collection.Put(ctx, "doc3", body)
2480 assertHTTPError(t, err, 500)
2481
2482 body = Body{"users": []string{"role:bad:rolename"}, "userChannels": []string{"BBC1"}}
2483 _, _, err = collection.Put(ctx, "doc4", body)
2484 assertHTTPError(t, err, 500)
2485
2486 body = Body{"users": []string{",.,.,.,.,."}, "userChannels": []string{"BBC1"}}
2487 _, _, err = collection.Put(ctx, "doc5", body)
2488 assertHTTPError(t, err, 500)
2489
2490 body = Body{"users": []string{"username"}, "userChannels": []string{"bad,name"}}
2491 _, _, err = collection.Put(ctx, "doc6", body)
2492 assertHTTPError(t, err, 500)
2493}
2494
2495func TestAccessFunctionDb(t *testing.T) {
2496

Callers

nothing calls this directly

Calls 6

setupTestDBFunction · 0.85
UpdateSyncFunMethod · 0.80
assertHTTPErrorFunction · 0.70
CloseMethod · 0.65
PutMethod · 0.65

Tested by

no test coverage detected