Fix data clobbering issue when getting Quota Exceeded status (#4144)
Don't clobber the Quota Exceeded status once we get it Add unit test to make sure this doesn't happen --- #### Does this PR need a docs update or release note? - [x] ✅ Yes, it's included - [ ] 🕐 Yes, but in a later PR - [ ] ⛔ No #### Type of change - [ ] 🌻 Feature - [x] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Test Plan - [ ] 💪 Manual - [x] ⚡ Unit test - [ ] 💚 E2E
This commit is contained in:
parent
bb1c03077b
commit
cc5864f852
@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased] (beta)
|
||||
|
||||
### Fixed
|
||||
- Exchange backups would fail attempting to use delta tokens even if the user was over quota
|
||||
|
||||
## [v0.12.0] (beta) - 2023-08-28
|
||||
|
||||
### Added
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user