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)
|
## [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
|
## [v0.12.0] (beta) - 2023-08-28
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@ -238,7 +238,7 @@ func (c Users) GetInfo(ctx context.Context, userID string) (*UserInfo, error) {
|
|||||||
return nil, clues.Stack(err)
|
return nil, clues.Stack(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
userInfo.Mailbox.QuotaExceeded = graph.IsErrQuotaExceeded(err)
|
mi.QuotaExceeded = graph.IsErrQuotaExceeded(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
userInfo.Mailbox = mi
|
userInfo.Mailbox = mi
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/h2non/gock"
|
"github.com/h2non/gock"
|
||||||
"github.com/microsoftgraph/msgraph-sdk-go/models"
|
"github.com/microsoftgraph/msgraph-sdk-go/models"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
|
|
||||||
"github.com/alcionai/corso/src/internal/m365/graph"
|
"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