diff --git a/src/internal/tester/tsetup/m365.go b/src/internal/tester/tsetup/m365.go new file mode 100644 index 000000000..0a088d89a --- /dev/null +++ b/src/internal/tester/tsetup/m365.go @@ -0,0 +1,130 @@ +package tsetup + +import ( + "testing" + + "github.com/alcionai/clues" + "github.com/stretchr/testify/require" + + "github.com/alcionai/corso/src/internal/common/ptr" + "github.com/alcionai/corso/src/internal/m365/graph" + "github.com/alcionai/corso/src/internal/m365/graph/mock" + "github.com/alcionai/corso/src/internal/tester" + "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/pkg/account" + "github.com/alcionai/corso/src/pkg/control" + "github.com/alcionai/corso/src/pkg/services/m365/api" +) + +// --------------------------------------------------------------------------- +// Gockable client +// --------------------------------------------------------------------------- + +// GockClient produces a new exchange api client that can be +// mocked using gock. +func gockClient(creds account.M365Config) (api.Client, error) { + s, err := mock.NewService(creds) + if err != nil { + return api.Client{}, err + } + + li, err := mock.NewService(creds, graph.NoTimeout()) + if err != nil { + return api.Client{}, err + } + + return api.Client{ + Credentials: creds, + Stable: s, + LargeItem: li, + }, nil +} + +// --------------------------------------------------------------------------- +// Suite Setup +// --------------------------------------------------------------------------- + +type m365IDs struct { + ID string + Email string + DriveID string + DriveRootFolderID string + TestContainerID string +} + +type M365 struct { + AC api.Client + GockAC api.Client + User m365IDs + Site m365IDs + Group m365IDs + NonTeamGroup m365IDs // group which does not have an associated team +} + +func NewM365IntegrationTester(t *testing.T) M365 { + mit := M365{} + + ctx, flush := tester.NewContext(t) + defer flush() + + graph.InitializeConcurrencyLimiter(ctx, true, 4) + + a := tconfig.NewM365Account(t) + creds, err := a.M365Config() + require.NoError(t, err, clues.ToCore(err)) + + mit.AC, err = api.NewClient(creds, control.DefaultOptions()) + require.NoError(t, err, clues.ToCore(err)) + + mit.GockAC, err = gockClient(creds) + require.NoError(t, err, clues.ToCore(err)) + + // user drive + + mit.User.ID = tconfig.M365UserID(t) + + userDrive, err := mit.AC.Users().GetDefaultDrive(ctx, mit.User.ID) + require.NoError(t, err, clues.ToCore(err)) + + mit.User.DriveID = ptr.Val(userDrive.GetId()) + + userDriveRootFolder, err := mit.AC.Drives().GetRootFolder(ctx, mit.User.DriveID) + require.NoError(t, err, clues.ToCore(err)) + + mit.User.DriveRootFolderID = ptr.Val(userDriveRootFolder.GetId()) + + // site + + mit.Site.ID = tconfig.M365SiteID(t) + + siteDrive, err := mit.AC.Sites().GetDefaultDrive(ctx, mit.Site.ID) + require.NoError(t, err, clues.ToCore(err)) + + mit.Site.DriveID = ptr.Val(siteDrive.GetId()) + + siteDriveRootFolder, err := mit.AC.Drives().GetRootFolder(ctx, mit.Site.DriveID) + require.NoError(t, err, clues.ToCore(err)) + + mit.Site.DriveRootFolderID = ptr.Val(siteDriveRootFolder.GetId()) + + // groups/teams + + // use of the TeamID is intentional here, so that we are assured + // the group has full usage of the teams api. + mit.Group.ID = tconfig.M365TeamID(t) + mit.Group.Email = tconfig.M365TeamEmail(t) + + mit.NonTeamGroup.ID = tconfig.M365GroupID(t) + + channel, err := mit.AC.Channels(). + GetChannelByName( + ctx, + mit.Group.ID, + "Test") + require.NoError(t, err, clues.ToCore(err)) + require.Equal(t, "Test", ptr.Val(channel.GetDisplayName())) + + mit.Group.TestContainerID = ptr.Val(channel.GetId()) + + return mit +} diff --git a/src/pkg/services/m365/api/access_test.go b/src/pkg/services/m365/api/access_test.go index 0b7f8f366..a1d2eeb15 100644 --- a/src/pkg/services/m365/api/access_test.go +++ b/src/pkg/services/m365/api/access_test.go @@ -9,13 +9,14 @@ import ( "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/account" "github.com/alcionai/corso/src/pkg/control" ) type AccessAPIIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestAccessAPIIntgSuite(t *testing.T) { @@ -27,7 +28,7 @@ func TestAccessAPIIntgSuite(t *testing.T) { } func (suite *AccessAPIIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *AccessAPIIntgSuite) TestGetToken() { @@ -38,13 +39,13 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { }{ { name: "good", - creds: func() account.M365Config { return suite.its.ac.Credentials }, + creds: func() account.M365Config { return suite.its.AC.Credentials }, expectErr: require.NoError, }, { name: "bad tenant ID", creds: func() account.M365Config { - creds := suite.its.ac.Credentials + creds := suite.its.AC.Credentials creds.AzureTenantID = "ZIM" return creds @@ -54,7 +55,7 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { { name: "missing tenant ID", creds: func() account.M365Config { - creds := suite.its.ac.Credentials + creds := suite.its.AC.Credentials creds.AzureTenantID = "" return creds @@ -64,7 +65,7 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { { name: "bad client ID", creds: func() account.M365Config { - creds := suite.its.ac.Credentials + creds := suite.its.AC.Credentials creds.AzureClientID = "GIR" return creds @@ -74,7 +75,7 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { { name: "missing client ID", creds: func() account.M365Config { - creds := suite.its.ac.Credentials + creds := suite.its.AC.Credentials creds.AzureClientID = "" return creds @@ -84,7 +85,7 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { { name: "bad client secret", creds: func() account.M365Config { - creds := suite.its.ac.Credentials + creds := suite.its.AC.Credentials creds.AzureClientSecret = "MY TALLEST" return creds @@ -94,7 +95,7 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { { name: "missing client secret", creds: func() account.M365Config { - creds := suite.its.ac.Credentials + creds := suite.its.AC.Credentials creds.AzureClientSecret = "" return creds @@ -109,7 +110,7 @@ func (suite *AccessAPIIntgSuite) TestGetToken() { ctx, flush := tester.NewContext(t) defer flush() - ac, err := NewClient(suite.its.ac.Credentials, control.DefaultOptions()) + ac, err := NewClient(suite.its.AC.Credentials, control.DefaultOptions()) require.NoError(t, err, clues.ToCore(err)) ac.Credentials = test.creds() diff --git a/src/pkg/services/m365/api/channels_pager_test.go b/src/pkg/services/m365/api/channels_pager_test.go index ea118a350..044020966 100644 --- a/src/pkg/services/m365/api/channels_pager_test.go +++ b/src/pkg/services/m365/api/channels_pager_test.go @@ -14,11 +14,12 @@ import ( "github.com/alcionai/corso/src/internal/common/str" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" ) type ChannelsPagerIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestChannelPagerIntgSuite(t *testing.T) { @@ -30,19 +31,19 @@ func TestChannelPagerIntgSuite(t *testing.T) { } func (suite *ChannelsPagerIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *ChannelsPagerIntgSuite) TestEnumerateChannels() { var ( t = suite.T() - ac = suite.its.ac.Channels() + ac = suite.its.AC.Channels() ) ctx, flush := tester.NewContext(t) defer flush() - chans, err := ac.GetChannels(ctx, suite.its.group.id) + chans, err := ac.GetChannels(ctx, suite.its.Group.ID) require.NoError(t, err, clues.ToCore(err)) require.NotEmpty(t, chans) } @@ -50,7 +51,7 @@ func (suite *ChannelsPagerIntgSuite) TestEnumerateChannels() { func (suite *ChannelsPagerIntgSuite) TestEnumerateChannelMessages() { var ( t = suite.T() - ac = suite.its.ac.Channels() + ac = suite.its.AC.Channels() ) ctx, flush := tester.NewContext(t) @@ -58,8 +59,8 @@ func (suite *ChannelsPagerIntgSuite) TestEnumerateChannelMessages() { addedIDs, _, _, du, err := ac.GetChannelMessageIDs( ctx, - suite.its.group.id, - suite.its.group.testContainerID, + suite.its.Group.ID, + suite.its.Group.TestContainerID, "", true) require.NoError(t, err, clues.ToCore(err)) @@ -69,8 +70,8 @@ func (suite *ChannelsPagerIntgSuite) TestEnumerateChannelMessages() { addedIDs, _, deletedIDs, du, err := ac.GetChannelMessageIDs( ctx, - suite.its.group.id, - suite.its.group.testContainerID, + suite.its.Group.ID, + suite.its.Group.TestContainerID, du.URL, true) require.NoError(t, err, clues.ToCore(err)) @@ -83,9 +84,9 @@ func (suite *ChannelsPagerIntgSuite) TestEnumerateChannelMessages() { suite.Run(id+"-replies", func() { testEnumerateChannelMessageReplies( suite.T(), - suite.its.ac.Channels(), - suite.its.group.id, - suite.its.group.testContainerID, + suite.its.AC.Channels(), + suite.its.Group.ID, + suite.its.Group.TestContainerID, id) }) } diff --git a/src/pkg/services/m365/api/contacts_pager_test.go b/src/pkg/services/m365/api/contacts_pager_test.go index 29fcb50c3..25ce89bae 100644 --- a/src/pkg/services/m365/api/contacts_pager_test.go +++ b/src/pkg/services/m365/api/contacts_pager_test.go @@ -12,11 +12,12 @@ import ( "github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" ) type ContactsPagerIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestContactsPagerIntgSuite(t *testing.T) { @@ -28,23 +29,23 @@ func TestContactsPagerIntgSuite(t *testing.T) { } func (suite *ContactsPagerIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *ContactsPagerIntgSuite) TestContacts_GetItemsInContainerByCollisionKey() { t := suite.T() - ac := suite.its.ac.Contacts() + ac := suite.its.AC.Contacts() ctx, flush := tester.NewContext(t) defer flush() - container, err := ac.GetContainerByID(ctx, suite.its.user.id, "contacts") + container, err := ac.GetContainerByID(ctx, suite.its.User.ID, "contacts") require.NoError(t, err, clues.ToCore(err)) conts, err := ac.Stable. Client(). Users(). - ByUserId(suite.its.user.id). + ByUserId(suite.its.User.ID). ContactFolders(). ByContactFolderId(ptr.Val(container.GetId())). Contacts(). @@ -60,7 +61,7 @@ func (suite *ContactsPagerIntgSuite) TestContacts_GetItemsInContainerByCollision expect := maps.Keys(expectM) - results, err := suite.its.ac.Contacts().GetItemsInContainerByCollisionKey(ctx, suite.its.user.id, "contacts") + results, err := suite.its.AC.Contacts().GetItemsInContainerByCollisionKey(ctx, suite.its.User.ID, "contacts") require.NoError(t, err, clues.ToCore(err)) require.Less(t, 0, len(results), "requires at least one result") @@ -85,18 +86,18 @@ func (suite *ContactsPagerIntgSuite) TestContacts_GetItemsInContainerByCollision func (suite *ContactsPagerIntgSuite) TestContacts_GetItemsIDsInContainer() { t := suite.T() - ac := suite.its.ac.Contacts() + ac := suite.its.AC.Contacts() ctx, flush := tester.NewContext(t) defer flush() - container, err := ac.GetContainerByID(ctx, suite.its.user.id, DefaultContacts) + container, err := ac.GetContainerByID(ctx, suite.its.User.ID, DefaultContacts) require.NoError(t, err, clues.ToCore(err)) msgs, err := ac.Stable. Client(). Users(). - ByUserId(suite.its.user.id). + ByUserId(suite.its.User.ID). ContactFolders(). ByContactFolderId(ptr.Val(container.GetId())). Contacts(). @@ -110,8 +111,8 @@ func (suite *ContactsPagerIntgSuite) TestContacts_GetItemsIDsInContainer() { expect[ptr.Val(m.GetId())] = struct{}{} } - results, err := suite.its.ac.Contacts(). - GetItemIDsInContainer(ctx, suite.its.user.id, DefaultContacts) + results, err := suite.its.AC.Contacts(). + GetItemIDsInContainer(ctx, suite.its.User.ID, DefaultContacts) require.NoError(t, err, clues.ToCore(err)) require.Less(t, 0, len(results), "requires at least one result") require.Equal(t, len(expect), len(results), "must have same count of items") diff --git a/src/pkg/services/m365/api/contacts_test.go b/src/pkg/services/m365/api/contacts_test.go index 0a088919e..b1c2d9a8e 100644 --- a/src/pkg/services/m365/api/contacts_test.go +++ b/src/pkg/services/m365/api/contacts_test.go @@ -14,6 +14,7 @@ import ( exchMock "github.com/alcionai/corso/src/internal/m365/service/exchange/mock" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/control/testdata" ) @@ -116,7 +117,7 @@ func (suite *ContactsAPIUnitSuite) TestBytesToContactable() { type ContactsAPIIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestContactsAPIntgSuite(t *testing.T) { @@ -128,7 +129,7 @@ func TestContactsAPIntgSuite(t *testing.T) { } func (suite *ContactsAPIIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *ContactsAPIIntgSuite) TestContacts_GetContainerByName() { @@ -142,9 +143,9 @@ func (suite *ContactsAPIIntgSuite) TestContacts_GetContainerByName() { rc := testdata.DefaultRestoreConfig("contacts_api") - cc, err := suite.its.ac.Contacts().CreateContainer( + cc, err := suite.its.AC.Contacts().CreateContainer( ctx, - suite.its.user.id, + suite.its.User.ID, "", rc.Location) require.NoError(t, err, clues.ToCore(err)) @@ -169,9 +170,9 @@ func (suite *ContactsAPIIntgSuite) TestContacts_GetContainerByName() { ctx, flush := tester.NewContext(t) defer flush() - _, err := suite.its.ac. + _, err := suite.its.AC. Contacts(). - GetContainerByName(ctx, suite.its.user.id, "", test.name) + GetContainerByName(ctx, suite.its.User.ID, "", test.name) test.expectErr(t, err, clues.ToCore(err)) }) } diff --git a/src/pkg/services/m365/api/drive_pager_test.go b/src/pkg/services/m365/api/drive_pager_test.go index 59f8bd55e..273f4e29b 100644 --- a/src/pkg/services/m365/api/drive_pager_test.go +++ b/src/pkg/services/m365/api/drive_pager_test.go @@ -12,11 +12,12 @@ import ( "github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" ) type DrivePagerIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestDrivePagerIntgSuite(t *testing.T) { @@ -28,7 +29,7 @@ func TestDrivePagerIntgSuite(t *testing.T) { } func (suite *DrivePagerIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *DrivePagerIntgSuite) TestDrives_GetItemsInContainerByCollisionKey() { @@ -39,13 +40,13 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemsInContainerByCollisionKey() }{ { name: "user drive", - driveID: suite.its.user.driveID, - rootFolderID: suite.its.user.driveRootFolderID, + driveID: suite.its.User.DriveID, + rootFolderID: suite.its.User.DriveRootFolderID, }, { name: "site drive", - driveID: suite.its.site.driveID, - rootFolderID: suite.its.site.driveRootFolderID, + driveID: suite.its.Site.DriveID, + rootFolderID: suite.its.Site.DriveRootFolderID, }, } for _, test := range table { @@ -58,7 +59,7 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemsInContainerByCollisionKey() t.Log("drive", test.driveID) t.Log("rootFolder", test.rootFolderID) - items, err := suite.its.ac.Stable. + items, err := suite.its.AC.Stable. Client(). Drives(). ByDriveId(test.driveID). @@ -75,9 +76,9 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemsInContainerByCollisionKey() t, ims, "need at least one item to compare in user %s drive %s folder %s", - suite.its.user.id, test.driveID, test.rootFolderID) + suite.its.User.ID, test.driveID, test.rootFolderID) - results, err := suite.its.ac. + results, err := suite.its.AC. Drives(). GetItemsInContainerByCollisionKey(ctx, test.driveID, test.rootFolderID) require.NoError(t, err, clues.ToCore(err)) @@ -113,13 +114,13 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemIDsInContainer() { }{ { name: "user drive", - driveID: suite.its.user.driveID, - rootFolderID: suite.its.user.driveRootFolderID, + driveID: suite.its.User.DriveID, + rootFolderID: suite.its.User.DriveRootFolderID, }, { name: "site drive", - driveID: suite.its.site.driveID, - rootFolderID: suite.its.site.driveRootFolderID, + driveID: suite.its.Site.DriveID, + rootFolderID: suite.its.Site.DriveRootFolderID, }, } for _, test := range table { @@ -132,7 +133,7 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemIDsInContainer() { t.Log("drive", test.driveID) t.Log("rootFolder", test.rootFolderID) - items, err := suite.its.ac.Stable. + items, err := suite.its.AC.Stable. Client(). Drives(). ByDriveId(test.driveID). @@ -149,7 +150,7 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemIDsInContainer() { t, igv, "need at least one item to compare in user %s drive %s folder %s", - suite.its.user.id, test.driveID, test.rootFolderID) + suite.its.User.ID, test.driveID, test.rootFolderID) for _, itm := range igv { expect[ptr.Val(itm.GetId())] = DriveItemIDType{ @@ -158,7 +159,7 @@ func (suite *DrivePagerIntgSuite) TestDrives_GetItemIDsInContainer() { } } - results, err := suite.its.ac. + results, err := suite.its.AC. Drives(). GetItemIDsInContainer(ctx, test.driveID, test.rootFolderID) require.NoError(t, err, clues.ToCore(err)) @@ -188,11 +189,11 @@ func (suite *DrivePagerIntgSuite) TestEnumerateDriveItems() { items := []models.DriveItemable{} pager := suite.its. - ac. + AC. Drives(). EnumerateDriveItemsDelta( ctx, - suite.its.user.driveID, + suite.its.User.DriveID, "", CallConfig{ Select: DefaultDriveItemProps(), diff --git a/src/pkg/services/m365/api/drive_test.go b/src/pkg/services/m365/api/drive_test.go index 5964ef8b6..ce155dca8 100644 --- a/src/pkg/services/m365/api/drive_test.go +++ b/src/pkg/services/m365/api/drive_test.go @@ -16,17 +16,18 @@ import ( "github.com/alcionai/corso/src/internal/m365/graph" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/control" "github.com/alcionai/corso/src/pkg/control/testdata" ) type DriveAPIIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func (suite *DriveAPIIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func TestDriveAPIs(t *testing.T) { @@ -44,7 +45,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_CreatePagerAndGetPage() { defer flush() siteID := tconfig.M365SiteID(t) - pager := suite.its.ac.Drives().NewSiteDrivePager(siteID, []string{"name"}) + pager := suite.its.AC.Drives().NewSiteDrivePager(siteID, []string{"name"}) a, err := pager.GetPage(ctx) assert.NoError(t, err, clues.ToCore(err)) @@ -58,13 +59,13 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer() { defer flush() rc := testdata.DefaultRestoreConfig("drive_api_post_item") - acd := suite.its.ac.Drives() + acd := suite.its.AC.Drives() // generate a parent for the test data parent, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, - suite.its.user.driveRootFolderID, + suite.its.User.DriveID, + suite.its.User.DriveRootFolderID, NewDriveItem(rc.Location, true), control.Replace) require.NoError(t, err, clues.ToCore(err)) @@ -73,7 +74,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer() { folder := NewDriveItem("collision", true) origFolder, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, + suite.its.User.DriveID, ptr.Val(parent.GetId()), folder, control.Copy) @@ -83,7 +84,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer() { file := NewDriveItem("collision.txt", false) origFile, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, + suite.its.User.DriveID, ptr.Val(parent.GetId()), file, control.Copy) @@ -234,7 +235,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer() { t := suite.T() i, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, + suite.its.User.DriveID, ptr.Val(parent.GetId()), test.postItem, test.onCollision) @@ -255,15 +256,15 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer_replaceFolderRegr var ( rc = testdata.DefaultRestoreConfig("drive_folder_replace_regression") - acd = suite.its.ac.Drives() + acd = suite.its.AC.Drives() files = make([]models.DriveItemable, 0, 5) ) // generate a folder for the test data folder, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, - suite.its.user.driveRootFolderID, + suite.its.User.DriveID, + suite.its.User.DriveRootFolderID, NewDriveItem(rc.Location, true), // skip instead of replace here to get // an ErrItemAlreadyExistsConflict, just in case. @@ -275,7 +276,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer_replaceFolderRegr file := NewDriveItem(fmt.Sprintf("collision_%d.txt", i), false) f, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, + suite.its.User.DriveID, ptr.Val(folder.GetId()), file, control.Copy) @@ -286,7 +287,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer_replaceFolderRegr resultFolder, err := acd.PostItemInContainer( ctx, - suite.its.user.driveID, + suite.its.User.DriveID, ptr.Val(folder.GetParentReference().GetId()), NewDriveItem(rc.Location, true), control.Replace) @@ -297,7 +298,7 @@ func (suite *DriveAPIIntgSuite) TestDrives_PostItemInContainer_replaceFolderRegr resultFileColl, err := acd.Stable. Client(). Drives(). - ByDriveId(suite.its.user.driveID). + ByDriveId(suite.its.User.DriveID). Items(). ByDriveItemId(ptr.Val(resultFolder.GetId())). Children(). diff --git a/src/pkg/services/m365/api/events_pager_test.go b/src/pkg/services/m365/api/events_pager_test.go index 26261cc8c..6bd68b871 100644 --- a/src/pkg/services/m365/api/events_pager_test.go +++ b/src/pkg/services/m365/api/events_pager_test.go @@ -12,11 +12,12 @@ import ( "github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" ) type EventsPagerIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestEventsPagerIntgSuite(t *testing.T) { @@ -28,23 +29,23 @@ func TestEventsPagerIntgSuite(t *testing.T) { } func (suite *EventsPagerIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *EventsPagerIntgSuite) TestEvents_GetItemsInContainerByCollisionKey() { t := suite.T() - ac := suite.its.ac.Events() + ac := suite.its.AC.Events() ctx, flush := tester.NewContext(t) defer flush() - container, err := ac.GetContainerByID(ctx, suite.its.user.id, "calendar") + container, err := ac.GetContainerByID(ctx, suite.its.User.ID, "calendar") require.NoError(t, err, clues.ToCore(err)) evts, err := ac.Stable. Client(). Users(). - ByUserId(suite.its.user.id). + ByUserId(suite.its.User.ID). Calendars(). ByCalendarId(ptr.Val(container.GetId())). Events(). @@ -60,9 +61,9 @@ func (suite *EventsPagerIntgSuite) TestEvents_GetItemsInContainerByCollisionKey( expect := maps.Keys(expectM) - results, err := suite.its.ac. + results, err := suite.its.AC. Events(). - GetItemsInContainerByCollisionKey(ctx, suite.its.user.id, "calendar") + GetItemsInContainerByCollisionKey(ctx, suite.its.User.ID, "calendar") require.NoError(t, err, clues.ToCore(err)) require.Less(t, 0, len(results), "requires at least one result") diff --git a/src/pkg/services/m365/api/events_test.go b/src/pkg/services/m365/api/events_test.go index 13aaaad92..11f693ae9 100644 --- a/src/pkg/services/m365/api/events_test.go +++ b/src/pkg/services/m365/api/events_test.go @@ -16,6 +16,7 @@ import ( exchMock "github.com/alcionai/corso/src/internal/m365/service/exchange/mock" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/control/testdata" ) @@ -219,7 +220,7 @@ func (suite *EventsAPIUnitSuite) TestBytesToEventable() { type EventsAPIIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestEventsAPIIntgSuite(t *testing.T) { @@ -231,7 +232,7 @@ func TestEventsAPIIntgSuite(t *testing.T) { } func (suite *EventsAPIIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *EventsAPIIntgSuite) TestEvents_RestoreLargeAttachment() { @@ -243,7 +244,7 @@ func (suite *EventsAPIIntgSuite) TestEvents_RestoreLargeAttachment() { userID := tconfig.M365UserID(suite.T()) folderName := testdata.DefaultRestoreConfig("eventlargeattachmenttest").Location - evts := suite.its.ac.Events() + evts := suite.its.AC.Events() calendar, err := evts.CreateContainer(ctx, userID, "", folderName) require.NoError(t, err, clues.ToCore(err)) @@ -282,10 +283,10 @@ func (suite *EventsAPIIntgSuite) TestEvents_canFindNonStandardFolder() { ctx, flush := tester.NewContext(t) defer flush() - ac := suite.its.ac.Events() + ac := suite.its.AC.Events() rc := testdata.DefaultRestoreConfig("api_calendar_discovery") - cal, err := ac.CreateContainer(ctx, suite.its.user.id, "", rc.Location) + cal, err := ac.CreateContainer(ctx, suite.its.User.ID, "", rc.Location) require.NoError(t, err, clues.ToCore(err)) var ( @@ -302,7 +303,7 @@ func (suite *EventsAPIIntgSuite) TestEvents_canFindNonStandardFolder() { containers, err := ac.EnumerateContainers( ctx, - suite.its.user.id, + suite.its.User.ID, DefaultCalendar, false) require.NoError(t, err, clues.ToCore(err)) @@ -341,9 +342,9 @@ func (suite *EventsAPIIntgSuite) TestEvents_GetContainerByName() { ctx, flush := tester.NewContext(t) defer flush() - _, err := suite.its.ac. + _, err := suite.its.AC. Events(). - GetContainerByName(ctx, suite.its.user.id, "", test.name) + GetContainerByName(ctx, suite.its.User.ID, "", test.name) test.expectErr(t, err, clues.ToCore(err)) }) } @@ -399,7 +400,7 @@ func (suite *EventsAPIIntgSuite) TestEvents_GetContainerByName_mocked() { Reply(200). JSON(test.results(t)) - _, err := suite.its.gockAC. + _, err := suite.its.GockAC. Events(). GetContainerByName(ctx, "u", "", test.name) test.expectErr(t, err, clues.ToCore(err)) diff --git a/src/pkg/services/m365/api/groups_test.go b/src/pkg/services/m365/api/groups_test.go index a933b6a4b..1ed1c472f 100644 --- a/src/pkg/services/m365/api/groups_test.go +++ b/src/pkg/services/m365/api/groups_test.go @@ -13,6 +13,7 @@ import ( "github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/fault" ) @@ -76,7 +77,7 @@ func (suite *GroupUnitSuite) TestValidateGroup() { type GroupsIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestGroupsIntgSuite(t *testing.T) { @@ -88,7 +89,7 @@ func TestGroupsIntgSuite(t *testing.T) { } func (suite *GroupsIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *GroupsIntgSuite) TestGetAll() { @@ -97,7 +98,7 @@ func (suite *GroupsIntgSuite) TestGetAll() { ctx, flush := tester.NewContext(t) defer flush() - groups, err := suite.its.ac. + groups, err := suite.its.AC. Groups(). GetAll(ctx, fault.New(true)) require.NoError(t, err) @@ -110,8 +111,8 @@ func (suite *GroupsIntgSuite) TestGetAllSites() { ctx, flush := tester.NewContext(t) defer flush() - channels, err := suite.its.ac. - Channels().GetChannels(ctx, suite.its.group.id) + channels, err := suite.its.AC. + Channels().GetChannels(ctx, suite.its.Group.ID) require.NoError(t, err, "getting channels") require.NotZero(t, len(channels), "must have at least one channel") @@ -123,9 +124,9 @@ func (suite *GroupsIntgSuite) TestGetAllSites() { } } - sites, err := suite.its.ac. + sites, err := suite.its.AC. Groups(). - GetAllSites(ctx, suite.its.group.id, fault.New(true)) + GetAllSites(ctx, suite.its.Group.ID, fault.New(true)) require.NoError(t, err) require.NotZero(t, len(sites), "must have at least one site") require.Equal(t, siteCount, len(sites), "incorrect number of sites") @@ -138,13 +139,13 @@ func (suite *GroupsIntgSuite) TestGetAllSitesNonTeam() { ctx, flush := tester.NewContext(t) defer flush() - group, err := suite.its.ac.Groups().GetByID(ctx, suite.its.nonTeamGroup.id, CallConfig{}) + group, err := suite.its.AC.Groups().GetByID(ctx, suite.its.NonTeamGroup.ID, CallConfig{}) require.NoError(t, err) require.False(t, IsTeam(ctx, group), "group should not be a team for this test") - sites, err := suite.its.ac. + sites, err := suite.its.AC. Groups(). - GetAllSites(ctx, suite.its.nonTeamGroup.id, fault.New(true)) + GetAllSites(ctx, suite.its.NonTeamGroup.ID, fault.New(true)) require.NoError(t, err) require.Equal(t, 1, len(sites), "incorrect number of sites") } @@ -156,9 +157,9 @@ func (suite *GroupsIntgSuite) TestGroups_GetByID() { defer flush() var ( - groupID = suite.its.group.id - groupsEmail = suite.its.group.email - groupsAPI = suite.its.ac.Groups() + groupID = suite.its.Group.ID + groupsEmail = suite.its.Group.Email + groupsAPI = suite.its.AC.Groups() ) grp, err := groupsAPI.GetByID(ctx, groupID, CallConfig{}) diff --git a/src/pkg/services/m365/api/helper_test.go b/src/pkg/services/m365/api/helper_test.go index 439b2ca54..d91982a84 100644 --- a/src/pkg/services/m365/api/helper_test.go +++ b/src/pkg/services/m365/api/helper_test.go @@ -5,46 +5,13 @@ import ( "strings" "testing" - "github.com/alcionai/clues" "github.com/h2non/gock" "github.com/microsoft/kiota-abstractions-go/serialization" kjson "github.com/microsoft/kiota-serialization-json-go" "github.com/microsoftgraph/msgraph-sdk-go/models/odataerrors" "github.com/stretchr/testify/require" - - "github.com/alcionai/corso/src/internal/common/ptr" - "github.com/alcionai/corso/src/internal/m365/graph" - gmock "github.com/alcionai/corso/src/internal/m365/graph/mock" - "github.com/alcionai/corso/src/internal/tester" - "github.com/alcionai/corso/src/internal/tester/tconfig" - "github.com/alcionai/corso/src/pkg/account" - "github.com/alcionai/corso/src/pkg/control" ) -// --------------------------------------------------------------------------- -// Gockable client -// --------------------------------------------------------------------------- - -// GockClient produces a new exchange api client that can be -// mocked using gock. -func gockClient(creds account.M365Config) (Client, error) { - s, err := gmock.NewService(creds) - if err != nil { - return Client{}, err - } - - li, err := gmock.NewService(creds, graph.NoTimeout()) - if err != nil { - return Client{}, err - } - - return Client{ - Credentials: creds, - Stable: s, - LargeItem: li, - }, nil -} - // --------------------------------------------------------------------------- // Intercepting calls with Gock // --------------------------------------------------------------------------- @@ -94,92 +61,3 @@ func requireParseableToMap(t *testing.T, thing serialization.Parsable) map[strin return out } - -// --------------------------------------------------------------------------- -// Suite Setup -// --------------------------------------------------------------------------- - -type ids struct { - id string - email string - driveID string - driveRootFolderID string - testContainerID string -} - -type intgTesterSetup struct { - ac Client - gockAC Client - user ids - site ids - group ids - nonTeamGroup ids // group which does not have an associated team -} - -func newIntegrationTesterSetup(t *testing.T) intgTesterSetup { - its := intgTesterSetup{} - - ctx, flush := tester.NewContext(t) - defer flush() - - graph.InitializeConcurrencyLimiter(ctx, true, 4) - - a := tconfig.NewM365Account(t) - creds, err := a.M365Config() - require.NoError(t, err, clues.ToCore(err)) - - its.ac, err = NewClient(creds, control.DefaultOptions()) - require.NoError(t, err, clues.ToCore(err)) - - its.gockAC, err = gockClient(creds) - require.NoError(t, err, clues.ToCore(err)) - - // user drive - - its.user.id = tconfig.M365UserID(t) - - userDrive, err := its.ac.Users().GetDefaultDrive(ctx, its.user.id) - require.NoError(t, err, clues.ToCore(err)) - - its.user.driveID = ptr.Val(userDrive.GetId()) - - userDriveRootFolder, err := its.ac.Drives().GetRootFolder(ctx, its.user.driveID) - require.NoError(t, err, clues.ToCore(err)) - - its.user.driveRootFolderID = ptr.Val(userDriveRootFolder.GetId()) - - // site - - its.site.id = tconfig.M365SiteID(t) - - siteDrive, err := its.ac.Sites().GetDefaultDrive(ctx, its.site.id) - require.NoError(t, err, clues.ToCore(err)) - - its.site.driveID = ptr.Val(siteDrive.GetId()) - - siteDriveRootFolder, err := its.ac.Drives().GetRootFolder(ctx, its.site.driveID) - require.NoError(t, err, clues.ToCore(err)) - - its.site.driveRootFolderID = ptr.Val(siteDriveRootFolder.GetId()) - - // groups/teams - - // use of the TeamID is intentional here, so that we are assured - // the group has full usage of the teams api. - its.group.id = tconfig.M365TeamID(t) - its.group.email = tconfig.M365TeamEmail(t) - - its.nonTeamGroup.id = tconfig.M365GroupID(t) - - channel, err := its.ac.Channels(). - GetChannelByName( - ctx, - its.group.id, - "Test") - require.NoError(t, err, clues.ToCore(err)) - require.Equal(t, "Test", ptr.Val(channel.GetDisplayName())) - - its.group.testContainerID = ptr.Val(channel.GetId()) - - return its -} diff --git a/src/pkg/services/m365/api/lists_test.go b/src/pkg/services/m365/api/lists_test.go index 795a59247..e770083eb 100644 --- a/src/pkg/services/m365/api/lists_test.go +++ b/src/pkg/services/m365/api/lists_test.go @@ -12,16 +12,17 @@ import ( "github.com/alcionai/corso/src/internal/m365/graph" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/control/testdata" ) type ListsAPIIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func (suite *ListsAPIIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func TestListsAPIIntgSuite(t *testing.T) { @@ -39,9 +40,9 @@ func (suite *ListsAPIIntgSuite) TestLists_PostDrive() { defer flush() var ( - acl = suite.its.ac.Lists() + acl = suite.its.AC.Lists() driveName = testdata.DefaultRestoreConfig("list_api_post_drive").Location - siteID = suite.its.site.id + siteID = suite.its.Site.ID ) // first post, should have no errors diff --git a/src/pkg/services/m365/api/mail_pager_test.go b/src/pkg/services/m365/api/mail_pager_test.go index bc7d5f2c9..cdc4ce580 100644 --- a/src/pkg/services/m365/api/mail_pager_test.go +++ b/src/pkg/services/m365/api/mail_pager_test.go @@ -13,11 +13,12 @@ import ( "github.com/alcionai/corso/src/internal/common/ptr" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" ) type MailPagerIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestMailPagerIntgSuite(t *testing.T) { @@ -29,23 +30,23 @@ func TestMailPagerIntgSuite(t *testing.T) { } func (suite *MailPagerIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *MailPagerIntgSuite) TestMail_GetItemsInContainerByCollisionKey() { t := suite.T() - ac := suite.its.ac.Mail() + ac := suite.its.AC.Mail() ctx, flush := tester.NewContext(t) defer flush() - container, err := ac.GetContainerByID(ctx, suite.its.user.id, MailInbox) + container, err := ac.GetContainerByID(ctx, suite.its.User.ID, MailInbox) require.NoError(t, err, clues.ToCore(err)) msgs, err := ac.Stable. Client(). Users(). - ByUserId(suite.its.user.id). + ByUserId(suite.its.User.ID). MailFolders(). ByMailFolderId(ptr.Val(container.GetId())). Messages(). @@ -61,7 +62,7 @@ func (suite *MailPagerIntgSuite) TestMail_GetItemsInContainerByCollisionKey() { expect := maps.Keys(expectM) - results, err := suite.its.ac.Mail().GetItemsInContainerByCollisionKey(ctx, suite.its.user.id, MailInbox) + results, err := suite.its.AC.Mail().GetItemsInContainerByCollisionKey(ctx, suite.its.User.ID, MailInbox) require.NoError(t, err, clues.ToCore(err)) require.Less(t, 0, len(results), "requires at least one result") @@ -86,7 +87,7 @@ func (suite *MailPagerIntgSuite) TestMail_GetItemsInContainerByCollisionKey() { func (suite *MailPagerIntgSuite) TestMail_GetItemsIDsInContainer() { t := suite.T() - ac := suite.its.ac.Mail() + ac := suite.its.AC.Mail() ctx, flush := tester.NewContext(t) defer flush() @@ -100,7 +101,7 @@ func (suite *MailPagerIntgSuite) TestMail_GetItemsIDsInContainer() { msgs, err := ac.Stable. Client(). Users(). - ByUserId(suite.its.user.id). + ByUserId(suite.its.User.ID). MailFolders(). ByMailFolderId(MailInbox). Messages(). @@ -114,8 +115,8 @@ func (suite *MailPagerIntgSuite) TestMail_GetItemsIDsInContainer() { expect[ptr.Val(m.GetId())] = struct{}{} } - results, err := suite.its.ac.Mail(). - GetItemIDsInContainer(ctx, suite.its.user.id, MailInbox) + results, err := suite.its.AC.Mail(). + GetItemIDsInContainer(ctx, suite.its.User.ID, MailInbox) require.NoError(t, err, clues.ToCore(err)) require.Less(t, 0, len(results), "requires at least one result") require.Equal(t, len(expect), len(results), "must have same count of items") diff --git a/src/pkg/services/m365/api/mail_test.go b/src/pkg/services/m365/api/mail_test.go index de040082a..a605c7698 100644 --- a/src/pkg/services/m365/api/mail_test.go +++ b/src/pkg/services/m365/api/mail_test.go @@ -15,6 +15,7 @@ import ( exchMock "github.com/alcionai/corso/src/internal/m365/service/exchange/mock" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/backup/details" "github.com/alcionai/corso/src/pkg/control/testdata" "github.com/alcionai/corso/src/pkg/fault" @@ -187,7 +188,7 @@ func (suite *MailAPIUnitSuite) TestBytesToMessagable() { type MailAPIIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } // We do end up mocking the actual request, but creating the rest @@ -201,7 +202,7 @@ func TestMailAPIIntgSuite(t *testing.T) { } func (suite *MailAPIIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *MailAPIIntgSuite) TestHugeAttachmentListDownload() { @@ -338,7 +339,7 @@ func (suite *MailAPIIntgSuite) TestHugeAttachmentListDownload() { defer gock.Off() test.setupf() - item, _, err := suite.its.gockAC.Mail().GetItem( + item, _, err := suite.its.GockAC.Mail().GetItem( ctx, "user", mid, @@ -378,7 +379,7 @@ func (suite *MailAPIIntgSuite) TestMail_RestoreLargeAttachment() { userID := tconfig.M365UserID(suite.T()) folderName := testdata.DefaultRestoreConfig("maillargeattachmenttest").Location - msgs := suite.its.ac.Mail() + msgs := suite.its.AC.Mail() mailfolder, err := msgs.CreateContainer(ctx, userID, MsgFolderRoot, folderName) require.NoError(t, err, clues.ToCore(err)) @@ -402,14 +403,14 @@ func (suite *MailAPIIntgSuite) TestMail_RestoreLargeAttachment() { func (suite *MailAPIIntgSuite) TestMail_GetContainerByName() { var ( t = suite.T() - acm = suite.its.ac.Mail() + acm = suite.its.AC.Mail() rc = testdata.DefaultRestoreConfig("mail_get_container_by_name") ) ctx, flush := tester.NewContext(t) defer flush() - parent, err := acm.CreateContainer(ctx, suite.its.user.id, "msgfolderroot", rc.Location) + parent, err := acm.CreateContainer(ctx, suite.its.User.ID, "msgfolderroot", rc.Location) require.NoError(t, err, clues.ToCore(err)) table := []struct { @@ -443,7 +444,7 @@ func (suite *MailAPIIntgSuite) TestMail_GetContainerByName() { ctx, flush := tester.NewContext(t) defer flush() - _, err := acm.GetContainerByName(ctx, suite.its.user.id, test.parentContainerID, test.name) + _, err := acm.GetContainerByName(ctx, suite.its.User.ID, test.parentContainerID, test.name) test.expectErr(t, err, clues.ToCore(err)) }) } @@ -455,10 +456,10 @@ func (suite *MailAPIIntgSuite) TestMail_GetContainerByName() { ctx, flush := tester.NewContext(t) defer flush() - child, err := acm.CreateContainer(ctx, suite.its.user.id, pid, rc.Location) + child, err := acm.CreateContainer(ctx, suite.its.User.ID, pid, rc.Location) require.NoError(t, err, clues.ToCore(err)) - result, err := acm.GetContainerByName(ctx, suite.its.user.id, pid, rc.Location) + result, err := acm.GetContainerByName(ctx, suite.its.User.ID, pid, rc.Location) assert.NoError(t, err, clues.ToCore(err)) assert.Equal(t, ptr.Val(child.GetId()), ptr.Val(result.GetId())) }) @@ -514,7 +515,7 @@ func (suite *MailAPIIntgSuite) TestMail_GetContainerByName_mocked() { Reply(200). JSON(test.results(t)) - _, err := suite.its.gockAC. + _, err := suite.its.GockAC. Mail(). GetContainerByName(ctx, "u", "", test.name) test.expectErr(t, err, clues.ToCore(err)) diff --git a/src/pkg/services/m365/api/sites_test.go b/src/pkg/services/m365/api/sites_test.go index 0cea6f4aa..740c187dd 100644 --- a/src/pkg/services/m365/api/sites_test.go +++ b/src/pkg/services/m365/api/sites_test.go @@ -15,6 +15,7 @@ import ( "github.com/alcionai/corso/src/internal/m365/graph" "github.com/alcionai/corso/src/internal/tester" "github.com/alcionai/corso/src/internal/tester/tconfig" + "github.com/alcionai/corso/src/internal/tester/tsetup" "github.com/alcionai/corso/src/pkg/fault" ) @@ -99,7 +100,7 @@ func (suite *SitesUnitSuite) TestValidateSite() { type SitesIntgSuite struct { tester.Suite - its intgTesterSetup + its tsetup.M365 } func TestSitesIntgSuite(t *testing.T) { @@ -111,7 +112,7 @@ func TestSitesIntgSuite(t *testing.T) { } func (suite *SitesIntgSuite) SetupSuite() { - suite.its = newIntegrationTesterSetup(suite.T()) + suite.its = tsetup.NewM365IntegrationTester(suite.T()) } func (suite *SitesIntgSuite) TestGetAll() { @@ -120,7 +121,7 @@ func (suite *SitesIntgSuite) TestGetAll() { ctx, flush := tester.NewContext(t) defer flush() - sites, err := suite.its.ac. + sites, err := suite.its.AC. Sites(). GetAll(ctx, fault.New(true)) require.NoError(t, err) @@ -146,7 +147,7 @@ func (suite *SitesIntgSuite) TestSites_GetByID() { uuids = strings.Join(parts[1:], ",") } - sitesAPI := suite.its.ac.Sites() + sitesAPI := suite.its.AC.Sites() table := []struct { name string @@ -249,7 +250,7 @@ func (suite *SitesIntgSuite) TestGetRoot() { ctx, flush := tester.NewContext(t) defer flush() - result, err := suite.its.ac.Sites().GetRoot(ctx, CallConfig{Expand: []string{"drive"}}) + result, err := suite.its.AC.Sites().GetRoot(ctx, CallConfig{Expand: []string{"drive"}}) require.NoError(t, err) require.NotNil(t, result, "must find the root site") require.NotEmpty(t, ptr.Val(result.GetId()), "must have an id")