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

Function TestFetchBackupWithDeletedFlag

db/revision_cache_test.go:2258–2303  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2256}
2257
2258func TestFetchBackupWithDeletedFlag(t *testing.T) {
2259 db, ctx := SetupTestDBWithOptions(t, DatabaseContextOptions{
2260 // enable delta sync so CV revs are backed up
2261 DeltaSyncOptions: DeltaSyncOptions{
2262 Enabled: true,
2263 RevMaxAgeSeconds: DefaultDeltaSyncRevMaxAge,
2264 },
2265 })
2266 defer db.Close(ctx)
2267 collection, ctx := GetSingleDatabaseCollectionWithUser(ctx, t, db)
2268
2269 docID := t.Name()
2270 revID1, doc1, err := collection.Put(ctx, docID, Body{"foo": "bar"})
2271 require.NoError(t, err)
2272
2273 deleteVrs := DocVersion{
2274 RevTreeID: revID1,
2275 }
2276 revID2, deleteDoc, err := collection.DeleteDoc(ctx, docID, deleteVrs)
2277 require.NoError(t, err)
2278
2279 // flush cache
2280 db.FlushRevisionCacheForTest()
2281
2282 docRev, err := collection.revisionCache.GetWithCV(ctx, docID, doc1.HLV.ExtractCurrentVersionFromHLV(), false, true)
2283 require.NoError(t, err)
2284
2285 assert.Equal(t, doc1.HLV.GetCurrentVersionString(), docRev.CV.String())
2286 // assert backup rev is not marked as deleted
2287 assert.False(t, docRev.Deleted)
2288
2289 // resurrect the doc
2290 _, _, err = collection.Put(ctx, docID, Body{"foo": "baz", BodyRev: revID2})
2291 require.NoError(t, err)
2292
2293 // flush cache
2294 db.FlushRevisionCacheForTest()
2295
2296 // fetch deleted, will get backup rev and assert that the deleted flag is true
2297 docRev, err = collection.revisionCache.GetWithCV(ctx, docID, deleteDoc.HLV.ExtractCurrentVersionFromHLV(), false, true)
2298 require.NoError(t, err)
2299
2300 assert.Equal(t, deleteDoc.HLV.GetCurrentVersionString(), docRev.CV.String())
2301 // assert backup rev is marked as deleted
2302 assert.True(t, docRev.Deleted)
2303}
2304
2305func TestCorrectHLVWhenFetchingBackupRev(t *testing.T) {
2306 db, ctx := SetupTestDBWithOptions(t, DatabaseContextOptions{

Callers

nothing calls this directly

Calls 12

SetupTestDBWithOptionsFunction · 0.85
CloseMethod · 0.65
NameMethod · 0.65
PutMethod · 0.65
GetWithCVMethod · 0.65
StringMethod · 0.65
DeleteDocMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected