Skip to content

Commit fb38516

Browse files
author
Taras Tyshko
committed
optimize pagination logic and use ~p sigil in tests
1 parent e16265d commit fb38516

File tree

3 files changed

+9
-24
lines changed

3 files changed

+9
-24
lines changed

.gitignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,4 @@ test/fixtures/ssl/device-root-ca.srl
2020
.lexical
2121
.elixir-tools
2222

23-
.DS_Store
24-
.idea/
25-
/cover/
26-
nerves_hub.iml
23+
.DS_Store

lib/nerves_hub_web/live/devices/show.ex

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@ defmodule NervesHubWeb.Live.Devices.Show do
5353
socket.endpoint.subscribe("firmware")
5454
end
5555

56-
default_page_size = if socket.assigns[:new_ui], do: 25, else: 5
57-
5856
socket
5957
|> page_title("Device #{device.identifier} - #{product.name}")
6058
|> sidebar_tab(:devices)
@@ -65,10 +63,7 @@ defmodule NervesHubWeb.Live.Devices.Show do
6563
|> assign_metadata()
6664
|> schedule_health_check_timer()
6765
|> assign(:fwup_progress, nil)
68-
|> assign(:page_number, 1)
69-
|> assign(:page_size, default_page_size)
7066
|> assign(:pinned?, Devices.device_pinned?(user.id, device.id))
71-
|> audit_log_assigns()
7267
|> assign_deployment_groups()
7368
|> setup_presence_tracking()
7469
|> setup_tab_components(@tab_components)
@@ -83,7 +78,6 @@ defmodule NervesHubWeb.Live.Devices.Show do
8378
socket
8479
|> assign(:page_number, page_number)
8580
|> assign(:page_size, page_size)
86-
# Reload audit logs with new pagination
8781
|> audit_log_assigns()
8882
|> update_tab_component_hooks()
8983
|> noreply()
@@ -495,7 +489,9 @@ defmodule NervesHubWeb.Live.Devices.Show do
495489
%{org: org, product: product, device: device} = socket.assigns
496490
url = ~p"/org/#{org}/#{product}/devices/#{device}?#{params}"
497491

498-
socket |> push_patch(to: url) |> noreply()
492+
socket
493+
|> push_patch(to: url)
494+
|> noreply()
499495
end
500496

501497
def handle_event("select-firmware-version", _, socket) do

test/nerves_hub_web/live/devices/show_test.exs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -701,24 +701,20 @@ defmodule NervesHubWeb.Live.Devices.ShowTest do
701701

702702
# Test page 1 with default page_size=5
703703
conn
704-
|> visit("/org/#{org.name}/#{product.name}/devices/#{device.identifier}")
704+
|> visit(~p"/org/#{org}/#{product}/devices/#{device}")
705705
|> assert_has("div.audit-log-item", count: 5)
706706
|> assert_has("button[phx-value-page=\"2\"]")
707707

708708
# Test page 2 with page_size=5
709709
conn
710-
|> visit(
711-
"/org/#{org.name}/#{product.name}/devices/#{device.identifier}?page_number=2&page_size=5"
712-
)
710+
|> visit(~p"/org/#{org}/#{product}/devices/#{device}?page_number=2&page_size=5")
713711
# Still showing 5 per page
714712
|> assert_has("div.audit-log-item", count: 5)
715713
|> assert_has("button[phx-value-page=\"1\"]")
716714

717715
# Test custom page_size=10
718716
conn
719-
|> visit(
720-
"/org/#{org.name}/#{product.name}/devices/#{device.identifier}?page_number=1&page_size=10"
721-
)
717+
|> visit(~p"/org/#{org}/#{product}/devices/#{device}?page_number=1&page_size=10")
722718
|> assert_has("div.audit-log-item", count: 10)
723719
end
724720

@@ -734,19 +730,15 @@ defmodule NervesHubWeb.Live.Devices.ShowTest do
734730
NervesHub.AuditLogs.audit!(user, device, "Pagination test entry #{i}")
735731
end)
736732

737-
{:ok, view, _html} =
738-
live(conn, "/org/#{org.name}/#{product.name}/devices/#{device.identifier}")
733+
{:ok, view, _html} = live(conn, ~p"/org/#{org}/#{product}/devices/#{device}")
739734

740735
# Test paginate event
741736
view
742737
|> element("button[phx-click=\"paginate\"][phx-value-page=\"2\"]", "2")
743738
|> render_click()
744739

745740
# Should redirect to page 2 on same device page
746-
assert_patch(
747-
view,
748-
"/org/#{org.name}/#{product.name}/devices/#{device.identifier}?page_number=2&page_size=5"
749-
)
741+
assert_patch(view, ~p"/org/#{org}/#{product}/devices/#{device}?page_number=2&page_size=5")
750742
end
751743
end
752744

0 commit comments

Comments
 (0)