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

Function TestRemoveObsoleteDesignDocsErrors

db/design_doc_test.go:156–198  ·  view source on GitHub ↗

Test remove obsolete design docs returns the same in both preview and non-preview

(t *testing.T)

Source from the content-addressed store, hash-verified

154
155// Test remove obsolete design docs returns the same in both preview and non-preview
156func TestRemoveObsoleteDesignDocsErrors(t *testing.T) {
157 setDesignDocPreviousVersionsForTest(t, "test")
158
159 ctx := base.TestCtx(t)
160 bucket := base.NewLeakyBucket(base.GetTestBucket(t), base.LeakyBucketConfig{})
161 defer bucket.Close(ctx)
162
163 mapFunction := `function (doc, meta){ emit(); }`
164
165 viewStore, ok := base.AsViewStore(bucket.DefaultDataStore())
166 require.True(t, ok)
167
168 err := viewStore.PutDDoc(ctx, DesignDocSyncGatewayPrefix+"_test", &sgbucket.DesignDoc{
169 Views: sgbucket.ViewMap{
170 "channels": sgbucket.ViewDef{Map: mapFunction},
171 },
172 })
173 require.NoError(t, err)
174 err = viewStore.PutDDoc(ctx, DesignDocSyncHousekeepingPrefix+"_test", &sgbucket.DesignDoc{
175 Views: sgbucket.ViewMap{
176 "channels": sgbucket.ViewDef{Map: mapFunction},
177 },
178 })
179 require.NoError(t, err)
180
181 // Verify creation was successful
182 base.RequireAllAssertions(t,
183 assertDesignDocExists(t, viewStore, DesignDocSyncGatewayPrefix+"_test"),
184 assertDesignDocExists(t, viewStore, DesignDocSyncHousekeepingPrefix+"_test"),
185 )
186
187 leakyDataStore, ok := base.AsLeakyDataStore(bucket.DefaultDataStore())
188 require.Truef(t, ok, "bucket is not a leaky bucket")
189 leakyDataStore.SetDDocGetErrorCount(1)
190 leakyDataStore.SetDDocDeleteErrorCount(1)
191
192 removedDDocsPreview, err := removeObsoleteDesignDocs(ctx, viewStore, true, false)
193 assert.NoError(t, err)
194 removedDDocsNonPreview, err := removeObsoleteDesignDocs(ctx, viewStore, false, false)
195 require.NoError(t, err)
196
197 assert.Equalf(t, removedDDocsPreview, removedDDocsNonPreview, "preview and non-preview should return the same design docs")
198}

Callers

nothing calls this directly

Calls 14

CloseMethod · 0.95
DefaultDataStoreMethod · 0.95
TestCtxFunction · 0.92
NewLeakyBucketFunction · 0.92
GetTestBucketFunction · 0.92
AsViewStoreFunction · 0.92
RequireAllAssertionsFunction · 0.92
AsLeakyDataStoreFunction · 0.92
assertDesignDocExistsFunction · 0.85
removeObsoleteDesignDocsFunction · 0.85
SetDDocGetErrorCountMethod · 0.80

Tested by

no test coverage detected