Compare commits

...

3 Commits

Author SHA1 Message Date
Ashlie Martinez
e3e12c1def Minor fixes after review 2023-08-29 14:50:37 -07:00
Ashlie Martinez
b5ddab7c64 Add test explicitly for quota status
Ensure that if the we see a quota error that we actually return the
status we think we should.
2023-08-29 14:50:37 -07:00
Ashlie Martinez
80f10c1c72 Don't clobber quota status 2023-08-29 14:50:37 -07:00
2 changed files with 28 additions and 1 deletions

View File

@ -238,7 +238,7 @@ func (c Users) GetInfo(ctx context.Context, userID string) (*UserInfo, error) {
return nil, clues.Stack(err)
}
userInfo.Mailbox.QuotaExceeded = graph.IsErrQuotaExceeded(err)
mi.QuotaExceeded = graph.IsErrQuotaExceeded(err)
}
userInfo.Mailbox = mi

View File

@ -7,6 +7,7 @@ import (
"github.com/h2non/gock"
"github.com/microsoftgraph/msgraph-sdk-go/models"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/stretchr/testify/suite"
"github.com/alcionai/corso/src/internal/m365/graph"
@ -250,3 +251,29 @@ func (suite *UsersIntgSuite) TestUsers_GetInfo_errors() {
})
}
}
func (suite *UsersIntgSuite) TestUsers_GetInfo_quotaExceeded() {
t := suite.T()
ctx, flush := tester.NewContext(t)
defer flush()
defer gock.Off()
gock.EnableNetworking()
gock.New(graphAPIHostURL).
// Wildcard match on the inbox folder ID.
Get(v1APIURLPath("users", suite.its.userID, "mailFolders", "(.*)", "messages", "delta")).
Reply(403).
SetHeaders(
map[string]string{
"Content-Type": "application/json; odata.metadata=minimal; " +
"odata.streaming=true; IEEE754Compatible=false; charset=utf-8",
},
).
BodyString(`{"error":{"code":"ErrorQuotaExceeded","message":"The process failed to get the correct properties."}}`)
output, err := suite.its.gockAC.Users().GetInfo(ctx, suite.its.userID)
require.NoError(t, err, clues.ToCore(err))
assert.True(t, output.Mailbox.QuotaExceeded)
}