mirror of
https://github.com/fleetdm/fleet
synced 2026-05-24 01:18:42 +00:00
Fix bug where last request timestamp wasn't being updated. (#28157)
Unreleased SCIM bug For #23236
This commit is contained in:
parent
ce08f39499
commit
4c97c4390f
2 changed files with 15 additions and 3 deletions
|
|
@ -909,10 +909,10 @@ func (ds *Datastore) UpdateScimLastRequest(ctx context.Context, lastRequest *fle
|
|||
}
|
||||
|
||||
return ds.withRetryTxx(ctx, func(tx sqlx.ExtContext) error {
|
||||
// Try to update first
|
||||
// Try to update first. We always update the timestamp since success requests all look the same.
|
||||
const updateQuery = `
|
||||
UPDATE scim_last_request
|
||||
SET status = ?, details = ?
|
||||
SET status = ?, details = ?, updated_at = NOW(6)
|
||||
`
|
||||
result, err := tx.ExecContext(
|
||||
ctx,
|
||||
|
|
|
|||
|
|
@ -1496,6 +1496,18 @@ func testScimLastRequest(t *testing.T, ds *Datastore) {
|
|||
assert.Equal(t, "Initial SCIM request", retrievedRequest.Details)
|
||||
assert.False(t, retrievedRequest.RequestedAt.IsZero(), "RequestedAt should not be zero")
|
||||
|
||||
// Do and check the same request again -- timestamp should update
|
||||
err = ds.UpdateScimLastRequest(t.Context(), newRequest)
|
||||
assert.NoError(t, err)
|
||||
retrievedSameRequest, err := ds.ScimLastRequest(t.Context())
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, retrievedSameRequest)
|
||||
assert.Equal(t, retrievedRequest.Status, retrievedSameRequest.Status)
|
||||
assert.Equal(t, retrievedRequest.Details, retrievedSameRequest.Details)
|
||||
// Verify that the timestamp is newer
|
||||
assert.True(t, retrievedSameRequest.RequestedAt.After(retrievedRequest.RequestedAt),
|
||||
"Same request timestamp should be after the original timestamp")
|
||||
|
||||
// Update the last request with new valid values
|
||||
updatedRequest := &fleet.ScimLastRequest{
|
||||
Status: "error",
|
||||
|
|
@ -1513,6 +1525,6 @@ func testScimLastRequest(t *testing.T, ds *Datastore) {
|
|||
assert.False(t, retrievedUpdatedRequest.RequestedAt.IsZero(), "RequestedAt should not be zero")
|
||||
|
||||
// Verify that the updated timestamp is newer
|
||||
assert.True(t, retrievedUpdatedRequest.RequestedAt.After(retrievedRequest.RequestedAt),
|
||||
assert.True(t, retrievedUpdatedRequest.RequestedAt.After(retrievedSameRequest.RequestedAt),
|
||||
"Updated request timestamp should be after the original timestamp")
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue