treat / as root for restore of onedrive and sharepoint (#3328)
<!-- PR description--> passing '/' will select anything for backup details and restore for onedrive and sharepoint #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [x] ⛔ No #### Type of change <!--- Please check the type of change your PR introduces: ---> - [ ] 🌻 Feature - [x] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Supportability/Tests - [ ] 💻 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/3252 #### Test Plan <!-- How will this be tested prior to merging.--> - [x] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
f2f76d932d
commit
245d3ee089
@ -10,6 +10,7 @@ import (
|
||||
|
||||
"github.com/alcionai/corso/src/internal/common/dttm"
|
||||
"github.com/alcionai/corso/src/pkg/path"
|
||||
"github.com/alcionai/corso/src/pkg/selectors"
|
||||
)
|
||||
|
||||
// common flag vars (eg: FV)
|
||||
@ -215,6 +216,11 @@ func trimFolderSlash(folders []string) []string {
|
||||
res := make([]string, 0, len(folders))
|
||||
|
||||
for _, p := range folders {
|
||||
if p == string(path.PathSeparator) {
|
||||
res = selectors.Any()
|
||||
break
|
||||
}
|
||||
|
||||
// Use path package because it has logic to handle escaping already.
|
||||
res = append(res, path.TrimTrailingSlash(p))
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/pkg/path"
|
||||
)
|
||||
|
||||
type OneDriveUtilsSuite struct {
|
||||
@ -26,6 +27,7 @@ func (suite *OneDriveUtilsSuite) TestIncludeOneDriveRestoreDataSelectors() {
|
||||
containsOnly = []string{"contains"}
|
||||
prefixOnly = []string{"/prefix"}
|
||||
containsAndPrefix = []string{"contains", "/prefix"}
|
||||
onlySlash = []string{string(path.PathSeparator)}
|
||||
)
|
||||
|
||||
table := []struct {
|
||||
@ -87,6 +89,15 @@ func (suite *OneDriveUtilsSuite) TestIncludeOneDriveRestoreDataSelectors() {
|
||||
},
|
||||
expectIncludeLen: 2,
|
||||
},
|
||||
{
|
||||
name: "folder with just /",
|
||||
opts: utils.OneDriveOpts{
|
||||
Users: empty,
|
||||
FileName: empty,
|
||||
FolderPath: onlySlash,
|
||||
},
|
||||
expectIncludeLen: 1,
|
||||
},
|
||||
}
|
||||
for _, test := range table {
|
||||
suite.Run(test.name, func() {
|
||||
|
||||
@ -9,6 +9,7 @@ import (
|
||||
"github.com/alcionai/corso/src/cli/utils"
|
||||
"github.com/alcionai/corso/src/internal/common/dttm"
|
||||
"github.com/alcionai/corso/src/internal/tester"
|
||||
"github.com/alcionai/corso/src/pkg/path"
|
||||
"github.com/alcionai/corso/src/pkg/selectors"
|
||||
)
|
||||
|
||||
@ -30,6 +31,7 @@ func (suite *SharePointUtilsSuite) TestIncludeSharePointRestoreDataSelectors() {
|
||||
containsOnly = []string{"contains"}
|
||||
prefixOnly = []string{"/prefix"}
|
||||
containsAndPrefix = []string{"contains", "/prefix"}
|
||||
onlySlash = []string{string(path.PathSeparator)}
|
||||
)
|
||||
|
||||
table := []struct {
|
||||
@ -182,6 +184,13 @@ func (suite *SharePointUtilsSuite) TestIncludeSharePointRestoreDataSelectors() {
|
||||
},
|
||||
expectIncludeLen: 2,
|
||||
},
|
||||
{
|
||||
name: "folder with just /",
|
||||
opts: utils.SharePointOpts{
|
||||
FolderPath: onlySlash,
|
||||
},
|
||||
expectIncludeLen: 1,
|
||||
},
|
||||
}
|
||||
for _, test := range table {
|
||||
suite.Run(test.name, func() {
|
||||
|
||||
14
src/cli/utils/testdata/opts.go
vendored
14
src/cli/utils/testdata/opts.go
vendored
@ -356,6 +356,13 @@ var (
|
||||
FolderPath: selectors.Any(),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "FilesWithSingleSlash",
|
||||
Expected: testdata.OneDriveItems,
|
||||
Opts: utils.OneDriveOpts{
|
||||
FolderPath: []string{"/"},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "FolderPrefixMatch",
|
||||
Expected: testdata.OneDriveItems,
|
||||
@ -482,6 +489,13 @@ var (
|
||||
FolderPath: selectors.Any(),
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "LibraryItemsWithSingleSlash",
|
||||
Expected: testdata.SharePointLibraryItems,
|
||||
Opts: utils.SharePointOpts{
|
||||
FolderPath: []string{"/"},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "FolderPrefixMatch",
|
||||
Expected: testdata.SharePointLibraryItems,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user