(t *testing.T)
| 2256 | } |
| 2257 | |
| 2258 | func 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 | |
| 2305 | func TestCorrectHLVWhenFetchingBackupRev(t *testing.T) { |
| 2306 | db, ctx := SetupTestDBWithOptions(t, DatabaseContextOptions{ |
nothing calls this directly
no test coverage detected