Skip to content

Commit 710381e

Browse files
authored
Make Sites.list_guests_query ordering deterministic to avoid flaky tests (#6132)
* Make `Sites.list_guests_query` ordering deterministic to avoid flaky tests * Fix pagination opts
1 parent d88b5a1 commit 710381e

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

extra/lib/plausible_web/controllers/api/external_sites_controller.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ defmodule PlausibleWeb.Api.ExternalSitesController do
3535

3636
with {:ok, site_id} <- expect_param_key(params, "site_id"),
3737
{:ok, site} <- find_site(user, team, site_id, [:owner, :admin, :editor, :viewer]) do
38-
opts = [cursor_fields: [inserted_at: :desc, id: :desc], limit: 100, maximum_limit: 1000]
38+
opts = [cursor_fields: [sort_index: :asc], limit: 100, maximum_limit: 1000]
3939
page = site |> Sites.list_guests_query() |> paginate(params, opts)
4040

4141
json(conn, %{

lib/plausible/sites.ex

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ defmodule Plausible.Sites do
204204
where: gm.site_id == ^site.id,
205205
select: %{
206206
id: gm.id,
207+
sort_index: -gm.id,
207208
inserted_at: gm.inserted_at,
208209
email: u.email,
209210
role: gm.role,
@@ -226,6 +227,7 @@ defmodule Plausible.Sites do
226227
where: gi.site_id == ^site.id,
227228
select: %{
228229
id: gi.id,
230+
sort_index: gi.id,
229231
inserted_at: gi.inserted_at,
230232
email: ti.email,
231233
role: gi.role,
@@ -245,12 +247,13 @@ defmodule Plausible.Sites do
245247
from(g in subquery(guests),
246248
select: %{
247249
id: g.id,
250+
sort_index: g.sort_index,
248251
inserted_at: g.inserted_at,
249252
email: g.email,
250253
role: g.role,
251254
status: g.status
252255
},
253-
order_by: [desc: g.inserted_at, desc: g.id]
256+
order_by: [asc: g.sort_index]
254257
)
255258
end
256259

0 commit comments

Comments
 (0)