This extends the existing export sanity tests to also cover SharePoint exports. <!-- PR description--> --- #### 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 - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [x] 🧹 Tech Debt/Cleanup #### Issue(s) <!-- Can reference multiple issues. Use one of the following "magic words" - "closes, fixes" to auto-close the Github issue. --> * closes https://github.com/alcionai/corso/issues/3889 #### Test Plan <!-- How will this be tested prior to merging.--> - [ ] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
89 lines
2.6 KiB
Go
89 lines
2.6 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/alcionai/clues"
|
|
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
|
|
|
|
"github.com/alcionai/corso/src/cmd/sanity_test/common"
|
|
"github.com/alcionai/corso/src/cmd/sanity_test/export"
|
|
"github.com/alcionai/corso/src/cmd/sanity_test/restore"
|
|
"github.com/alcionai/corso/src/internal/m365/graph"
|
|
"github.com/alcionai/corso/src/internal/tester/tconfig"
|
|
"github.com/alcionai/corso/src/pkg/logger"
|
|
)
|
|
|
|
func main() {
|
|
ls := logger.Settings{
|
|
File: logger.GetLogFile(""),
|
|
Level: logger.LLInfo,
|
|
PIIHandling: logger.PIIPlainText,
|
|
}
|
|
|
|
ctx, log := logger.Seed(context.Background(), ls)
|
|
defer func() {
|
|
_ = log.Sync() // flush all logs in the buffer
|
|
}()
|
|
|
|
graph.InitializeConcurrencyLimiter(ctx, true, 4)
|
|
|
|
adapter, err := graph.CreateAdapter(
|
|
tconfig.GetM365TenantID(ctx),
|
|
os.Getenv("AZURE_CLIENT_ID"),
|
|
os.Getenv("AZURE_CLIENT_SECRET"))
|
|
if err != nil {
|
|
common.Fatal(ctx, "creating adapter", err)
|
|
}
|
|
|
|
var (
|
|
client = msgraphsdk.NewGraphServiceClient(adapter)
|
|
testUser = tconfig.GetM365UserID(ctx)
|
|
testSite = tconfig.GetM365SiteID(ctx)
|
|
testKind = os.Getenv("SANITY_TEST_KIND") // restore or export (cli arg?)
|
|
testService = os.Getenv("SANITY_TEST_SERVICE")
|
|
folder = strings.TrimSpace(os.Getenv("SANITY_TEST_FOLDER"))
|
|
dataFolder = os.Getenv("TEST_DATA")
|
|
baseBackupFolder = os.Getenv("BASE_BACKUP")
|
|
)
|
|
|
|
ctx = clues.Add(
|
|
ctx,
|
|
"resource_owner", testUser,
|
|
"service", testService,
|
|
"sanity_restore_folder", folder)
|
|
|
|
logger.Ctx(ctx).Info("starting sanity test check")
|
|
|
|
switch testKind {
|
|
case "restore":
|
|
startTime, _ := common.MustGetTimeFromName(ctx, folder)
|
|
clues.Add(ctx, "sanity_restore_start_time", startTime.Format(time.RFC3339))
|
|
|
|
switch testService {
|
|
case "exchange":
|
|
restore.CheckEmailRestoration(ctx, client, testUser, folder, dataFolder, baseBackupFolder, startTime)
|
|
case "onedrive":
|
|
restore.CheckOneDriveRestoration(ctx, client, testUser, folder, dataFolder, startTime)
|
|
case "sharepoint":
|
|
restore.CheckSharePointRestoration(ctx, client, testSite, testUser, folder, dataFolder, startTime)
|
|
default:
|
|
common.Fatal(ctx, "unknown service for restore sanity tests", nil)
|
|
}
|
|
case "export":
|
|
switch testService {
|
|
case "onedrive":
|
|
export.CheckOneDriveExport(ctx, client, testUser, folder, dataFolder)
|
|
case "sharepoint":
|
|
export.CheckSharePointExport(ctx, client, testSite, folder, dataFolder)
|
|
default:
|
|
common.Fatal(ctx, "unknown service for export sanity tests", nil)
|
|
}
|
|
default:
|
|
common.Fatal(ctx, "unknown test kind (expected restore or export)", nil)
|
|
}
|
|
}
|