Treat empty prev delta as invalid (#2475)
## Description Empty delta values are treated as invalid and follow similar rules. ## Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [x] 🕐 Yes, but in a later PR - [ ] ⛔ No ## Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [x] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Test - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup ## Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * https://github.com/alcionai/corso/issues/2123 ## Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
66e5e7693d
commit
2a72335716
@ -1561,8 +1561,33 @@ func (suite *OneDriveCollectionsSuite) TestGet() {
|
|||||||
c.drivePagerFunc = drivePagerFunc
|
c.drivePagerFunc = drivePagerFunc
|
||||||
c.itemPagerFunc = itemPagerFunc
|
c.itemPagerFunc = itemPagerFunc
|
||||||
|
|
||||||
// TODO(ashmrtn): Allow passing previous metadata.
|
mc, err := graph.MakeMetadataCollection(
|
||||||
cols, delList, err := c.Get(ctx, nil)
|
tenant,
|
||||||
|
user,
|
||||||
|
path.OneDriveService,
|
||||||
|
path.FilesCategory,
|
||||||
|
[]graph.MetadataCollectionEntry{
|
||||||
|
graph.NewMetadataEntry(
|
||||||
|
graph.DeltaURLsFileName,
|
||||||
|
map[string]string{
|
||||||
|
driveID1: "prev-delta",
|
||||||
|
driveID2: "prev-delta",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
graph.NewMetadataEntry(
|
||||||
|
graph.PreviousPathFileName,
|
||||||
|
map[string]map[string]string{
|
||||||
|
driveID1: {},
|
||||||
|
driveID2: {},
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
func(*support.ConnectorOperationStatus) {},
|
||||||
|
)
|
||||||
|
assert.NoError(t, err, "creating metadata collection")
|
||||||
|
|
||||||
|
prevMetadata := []data.RestoreCollection{data.NotFoundRestoreCollection{Collection: mc}}
|
||||||
|
cols, delList, err := c.Get(ctx, prevMetadata)
|
||||||
test.errCheck(t, err)
|
test.errCheck(t, err)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -1688,12 +1713,14 @@ func getDeltaError() error {
|
|||||||
func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
||||||
next := "next"
|
next := "next"
|
||||||
delta := "delta"
|
delta := "delta"
|
||||||
|
prevDelta := "prev-delta"
|
||||||
|
|
||||||
table := []struct {
|
table := []struct {
|
||||||
name string
|
name string
|
||||||
items []deltaPagerResult
|
items []deltaPagerResult
|
||||||
deltaURL string
|
deltaURL string
|
||||||
prevDeltaSuccess bool
|
prevDeltaSuccess bool
|
||||||
|
prevDelta string
|
||||||
err error
|
err error
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
@ -1703,6 +1730,16 @@ func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
|||||||
{deltaLink: &delta},
|
{deltaLink: &delta},
|
||||||
},
|
},
|
||||||
prevDeltaSuccess: true,
|
prevDeltaSuccess: true,
|
||||||
|
prevDelta: prevDelta,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "empty prev delta",
|
||||||
|
deltaURL: delta,
|
||||||
|
items: []deltaPagerResult{
|
||||||
|
{deltaLink: &delta},
|
||||||
|
},
|
||||||
|
prevDeltaSuccess: false,
|
||||||
|
prevDelta: "",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "next then delta",
|
name: "next then delta",
|
||||||
@ -1712,6 +1749,7 @@ func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
|||||||
{deltaLink: &delta},
|
{deltaLink: &delta},
|
||||||
},
|
},
|
||||||
prevDeltaSuccess: true,
|
prevDeltaSuccess: true,
|
||||||
|
prevDelta: prevDelta,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "invalid prev delta",
|
name: "invalid prev delta",
|
||||||
@ -1720,6 +1758,7 @@ func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
|||||||
{err: getDeltaError()},
|
{err: getDeltaError()},
|
||||||
{deltaLink: &delta}, // works on retry
|
{deltaLink: &delta}, // works on retry
|
||||||
},
|
},
|
||||||
|
prevDelta: prevDelta,
|
||||||
prevDeltaSuccess: false,
|
prevDeltaSuccess: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -1728,6 +1767,7 @@ func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
|||||||
{nextLink: &next},
|
{nextLink: &next},
|
||||||
{err: assert.AnError},
|
{err: assert.AnError},
|
||||||
},
|
},
|
||||||
|
prevDelta: prevDelta,
|
||||||
prevDeltaSuccess: true,
|
prevDeltaSuccess: true,
|
||||||
err: assert.AnError,
|
err: assert.AnError,
|
||||||
},
|
},
|
||||||
@ -1759,7 +1799,7 @@ func (suite *OneDriveCollectionsSuite) TestCollectItems() {
|
|||||||
"",
|
"",
|
||||||
"General",
|
"General",
|
||||||
collectorFunc,
|
collectorFunc,
|
||||||
"",
|
test.prevDelta,
|
||||||
)
|
)
|
||||||
|
|
||||||
require.ErrorIs(suite.T(), err, test.err, "delta fetch err")
|
require.ErrorIs(suite.T(), err, test.err, "delta fetch err")
|
||||||
|
|||||||
@ -194,7 +194,7 @@ func collectItems(
|
|||||||
oldPaths = map[string]string{}
|
oldPaths = map[string]string{}
|
||||||
newPaths = map[string]string{}
|
newPaths = map[string]string{}
|
||||||
excluded = map[string]struct{}{}
|
excluded = map[string]struct{}{}
|
||||||
invalidPrevDelta = false
|
invalidPrevDelta = len(prevDelta) == 0
|
||||||
)
|
)
|
||||||
|
|
||||||
maps.Copy(newPaths, oldPaths)
|
maps.Copy(newPaths, oldPaths)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user