fix(admin): exclude rate-limited accounts from active filter
This commit is contained in:
@@ -468,6 +468,14 @@ func (r *accountRepository) ListWithFilters(ctx context.Context, params paginati
|
|||||||
}
|
}
|
||||||
if status != "" {
|
if status != "" {
|
||||||
switch status {
|
switch status {
|
||||||
|
case service.StatusActive:
|
||||||
|
q = q.Where(
|
||||||
|
dbaccount.StatusEQ(status),
|
||||||
|
dbaccount.Or(
|
||||||
|
dbaccount.RateLimitResetAtIsNil(),
|
||||||
|
dbaccount.RateLimitResetAtLTE(time.Now()),
|
||||||
|
),
|
||||||
|
)
|
||||||
case "rate_limited":
|
case "rate_limited":
|
||||||
q = q.Where(dbaccount.RateLimitResetAtGT(time.Now()))
|
q = q.Where(dbaccount.RateLimitResetAtGT(time.Now()))
|
||||||
case "temp_unschedulable":
|
case "temp_unschedulable":
|
||||||
|
|||||||
@@ -255,6 +255,22 @@ func (s *AccountRepoSuite) TestListWithFilters() {
|
|||||||
s.Require().Equal(service.StatusDisabled, accounts[0].Status)
|
s.Require().Equal(service.StatusDisabled, accounts[0].Status)
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "filter_by_status_active_excludes_rate_limited",
|
||||||
|
setup: func(client *dbent.Client) {
|
||||||
|
mustCreateAccount(s.T(), client, &service.Account{Name: "active-normal", Status: service.StatusActive})
|
||||||
|
rateLimited := mustCreateAccount(s.T(), client, &service.Account{Name: "active-rate-limited", Status: service.StatusActive})
|
||||||
|
err := client.Account.UpdateOneID(rateLimited.ID).
|
||||||
|
SetRateLimitResetAt(time.Now().Add(10 * time.Minute)).
|
||||||
|
Exec(context.Background())
|
||||||
|
s.Require().NoError(err)
|
||||||
|
},
|
||||||
|
status: service.StatusActive,
|
||||||
|
wantCount: 1,
|
||||||
|
validate: func(accounts []service.Account) {
|
||||||
|
s.Require().Equal("active-normal", accounts[0].Name)
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "filter_by_search",
|
name: "filter_by_search",
|
||||||
setup: func(client *dbent.Client) {
|
setup: func(client *dbent.Client) {
|
||||||
|
|||||||
Reference in New Issue
Block a user