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

Function TestViewQueryWrappers

rest/view_api_test.go:633–666  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

631}
632
633func TestViewQueryWrappers(t *testing.T) {
634 if !base.TestsDisableGSI() {
635 t.Skip("views tests are not applicable under GSI")
636 }
637 rt := NewRestTesterDefaultCollection(t, nil) // views only use default collection
638 defer rt.Close()
639
640 ctx := rt.Context()
641 rt.ServerContext().Database(ctx, "db").SetUserViewsEnabled(true)
642
643 response := rt.SendAdminRequest(http.MethodPut, "/db/admindoc", `{"value":"foo"}`)
644 RequireStatus(t, response, http.StatusCreated)
645 response = rt.SendAdminRequest(http.MethodPut, "/db/admindoc2", `{"value":"foo"}`)
646 RequireStatus(t, response, http.StatusCreated)
647 response = rt.SendAdminRequest(http.MethodPut, "/db/userdoc", `{"value":"foo", "channels": ["userchannel"]}`)
648 RequireStatus(t, response, http.StatusCreated)
649
650 response = rt.SendAdminRequest(http.MethodPut, "/db/_design/foodoc", `{"views": {"foobarview": {"map": "function(doc, meta) {if (doc.value == \"foo\") {emit(doc.key, null);}}"}}}`)
651 assert.Equal(t, http.StatusCreated, response.Code)
652
653 result := rt.WaitForNAdminViewResults(3, "/db/_design/foodoc/_view/foobarview")
654 assert.Equal(t, 3, result.Len())
655
656 a := rt.ServerContext().Database(ctx, "db").Authenticator(ctx)
657 testUser, err := a.NewUser("testUser", "password", channels.BaseSetOf(t, "userchannel"))
658 assert.NoError(t, err)
659 err = a.Save(testUser)
660 assert.NoError(t, err)
661
662 result = rt.WaitForNUserViewResults(1, "/db/_design/foodoc/_view/foobarview", testUser, "password")
663 assert.NoError(t, err)
664 assert.Equal(t, 1, result.Len())
665 assert.Equal(t, "userdoc", result.Rows[0].ID)
666}
667
668func TestViewQueryWithXattrAndNonXattr(t *testing.T) {
669

Callers

nothing calls this directly

Calls 15

TestsDisableGSIFunction · 0.92
BaseSetOfFunction · 0.92
RequireStatusFunction · 0.85
SetUserViewsEnabledMethod · 0.80
ServerContextMethod · 0.80
SendAdminRequestMethod · 0.80
NewUserMethod · 0.80
SaveMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected