(t *testing.T)
| 1031 | } |
| 1032 | |
| 1033 | func TestDeltaSyncWhenFromRevIsLegacyRevTreeID(t *testing.T) { |
| 1034 | base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll) |
| 1035 | |
| 1036 | if !base.IsEnterpriseEdition() { |
| 1037 | t.Skip("Delta sync only supported in EE") |
| 1038 | } |
| 1039 | |
| 1040 | db, ctx := SetupTestDBWithOptions(t, DatabaseContextOptions{ |
| 1041 | DeltaSyncOptions: DeltaSyncOptions{ |
| 1042 | Enabled: true, |
| 1043 | RevMaxAgeSeconds: 300, |
| 1044 | }, |
| 1045 | StoreLegacyRevTreeData: base.Ptr(true), |
| 1046 | }) |
| 1047 | |
| 1048 | defer db.Close(ctx) |
| 1049 | collection, ctx := GetSingleDatabaseCollectionWithUser(ctx, t, db) |
| 1050 | require.NoError(t, db.DbStats.InitDeltaSyncStats()) |
| 1051 | |
| 1052 | rev1, _, err := collection.Put(ctx, "doc1", Body{"foo": "bar", "bar": "buzz", "quux": "quax"}) |
| 1053 | require.NoError(t, err, "Error creating doc1") |
| 1054 | rev2, _, err := collection.Put(ctx, "doc1", Body{"foo": "bar", "quux": "fuzz", BodyRev: rev1}) |
| 1055 | require.NoError(t, err, "Error updating doc1") |
| 1056 | |
| 1057 | // force retrieval from backing store |
| 1058 | db.FlushRevisionCacheForTest() |
| 1059 | |
| 1060 | // get delta using legacy RevTree IDs - this should force a lookup for CV1 via the pointer backup revision doc |
| 1061 | delta, _, err := collection.GetDelta(ctx, "doc1", rev1, rev2) |
| 1062 | require.NoErrorf(t, err, "Error getting delta for doc %q from rev %q to %q", "doc1", rev1, rev2) |
| 1063 | require.NotNil(t, delta) |
| 1064 | assert.Equal(t, rev2, delta.ToRevID) |
| 1065 | assert.Equal(t, []byte(`{"bar":[],"quux":"fuzz"}`), delta.DeltaBytes) |
| 1066 | } |
| 1067 | |
| 1068 | func TestFetchCurrentRevAfterFetchBackupRevByCV(t *testing.T) { |
| 1069 | base.SetUpTestLogging(t, base.LevelDebug, base.KeyAll) |
nothing calls this directly
no test coverage detected