Skip to content

Commit

Permalink
WIP: fix workorderlive tests
Browse files Browse the repository at this point in the history
  • Loading branch information
midigofrank committed Nov 6, 2023
1 parent 9ebb6ca commit f42ba29
Show file tree
Hide file tree
Showing 4 changed files with 58 additions and 46 deletions.
16 changes: 13 additions & 3 deletions lib/lightning/invocation.ex
Original file line number Diff line number Diff line change
Expand Up @@ -358,9 +358,19 @@ defmodule Lightning.Invocation do
%SearchParams{} = search_params,
params \\ %{}
) do
project
|> search_workorders_query(search_params)
|> Repo.paginate(params)
query = search_workorders_query(project, search_params)
page = Repo.paginate(query, page: 1, page_size: 10)

Repo.to_sql(:all, query) |> IO.inspect(label: "TO SQL ----------------")

query
|> Repo.all()
|> Enum.count()
|> IO.inspect(label: "+++++++++++++++++++++++++++++++++++++++")

page.entries |> Enum.count() |> IO.inspect(label: "=======================>")

page
end

def search_workorders_query(
Expand Down
11 changes: 8 additions & 3 deletions lib/lightning_web/live/run_live/index.ex
Original file line number Diff line number Diff line change
Expand Up @@ -203,11 +203,16 @@ defmodule LightningWeb.RunLive.Index do
{:selection_toggled, {workorder, selected?}},
%{assigns: assigns} = socket
) do
selected_workorder = %Lightning.WorkOrder{
id: workorder.id,
workflow_id: workorder.workflow_id
}

work_orders =
if selected? do
[workorder | assigns.selected_work_orders]
[selected_workorder | assigns.selected_work_orders]
else
assigns.selected_work_orders -- [workorder]
assigns.selected_work_orders -- [selected_workorder]
end

{:noreply, assign(socket, selected_work_orders: work_orders)}
Expand Down Expand Up @@ -276,7 +281,7 @@ defmodule LightningWeb.RunLive.Index do
work_orders =
if selection do
Enum.map(page.entries, fn entry ->
Map.take(entry, [:id, :workflow_id])
%Lightning.WorkOrder{id: entry.id, workflow_id: entry.workflow_id}
end)
else
[]
Expand Down
2 changes: 1 addition & 1 deletion lib/lightning_web/live/run_live/workorder_component.ex
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ defmodule LightningWeb.RunLive.WorkOrderComponent do
for={selection_params(@work_order, @entry_selected)}
phx-change="toggle_selection"
phx-target={@myself}
id={"#{@work_order.id}-selection-form"}
id={"selection-form-#{@work_order.id}"}
>
<%= Phoenix.HTML.Form.checkbox(f, :selected,
id: "select_#{@work_order.id}",
Expand Down
75 changes: 36 additions & 39 deletions test/lightning_web/live/work_order_live_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ defmodule LightningWeb.RunWorkOrderTest do
job: job,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_code: 1,
exit_reason: "failed",
input_dataclip: dataclip
)
]
Expand Down Expand Up @@ -380,7 +380,7 @@ defmodule LightningWeb.RunWorkOrderTest do
input_dataclip: dataclip_two,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_code: 1
exit_reason: "failed"
)
]
)
Expand Down Expand Up @@ -849,7 +849,7 @@ defmodule LightningWeb.RunWorkOrderTest do
runs:
build_list(1, :run, %{
job: job,
exit_code: 1,
exit_reason: "failed",
started_at: now |> Timex.shift(seconds: -40),
finished_at: now |> Timex.shift(seconds: -20),
input_dataclip: dataclip
Expand Down Expand Up @@ -961,7 +961,7 @@ defmodule LightningWeb.RunWorkOrderTest do
input_dataclip: dataclip,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_code: 1
exit_reason: "failed"
)
]
)
Expand Down Expand Up @@ -1135,7 +1135,7 @@ defmodule LightningWeb.RunWorkOrderTest do
assert html =~ "New attempts enqueued for 2 workorders"

view
|> form("##{work_order_b.id}-selection-form")
|> form("#selection-form-#{work_order_b.id}")
|> render_change(%{selected: true})

result = render_click(view, "bulk-rerun", %{type: "selected"})
Expand Down Expand Up @@ -1215,7 +1215,7 @@ defmodule LightningWeb.RunWorkOrderTest do

# uncheck 1 work order
view
|> form("##{work_order_b.id}-selection-form")
|> form("#selection-form-#{work_order_b.id}")
|> render_change(%{selected: false})

updated_html = render(view)
Expand Down Expand Up @@ -1447,7 +1447,7 @@ defmodule LightningWeb.RunWorkOrderTest do
input_dataclip: dataclip,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_code: 1
exit_reason: "failed"
)
end)
)
Expand All @@ -1474,7 +1474,7 @@ defmodule LightningWeb.RunWorkOrderTest do
input_dataclip: dataclip,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_code: 1
exit_reason: "failed"
)
end)
)
Expand Down Expand Up @@ -1560,7 +1560,7 @@ defmodule LightningWeb.RunWorkOrderTest do

# uncheck 1 work order
view
|> form("##{work_order_3.id}-selection-form")
|> form("#selection-form-#{work_order_3.id}")
|> render_change(%{selected: false})

updated_html = render(view)
Expand Down Expand Up @@ -1634,7 +1634,7 @@ defmodule LightningWeb.RunWorkOrderTest do
"New attempts enqueued for 2 workorders"

view
|> form("##{work_order_1.id}-selection-form")
|> form("#selection-form-#{work_order_1.id}")
|> render_change(%{selected: true})

view
Expand All @@ -1656,41 +1656,38 @@ defmodule LightningWeb.RunWorkOrderTest do
} do
scenarios =
Enum.map(1..3, fn _n ->
workflow = insert(:workflow, project: project)
%{triggers: [trigger], jobs: jobs} =
workflow = insert(:complex_workflow, project: project)

dataclip = insert(:dataclip, project: project)

work_order =
insert(:workorder,
state: :success,
workflow: workflow,
trigger: build(:trigger),
dataclip: build(:dataclip),
trigger: trigger,
dataclip: dataclip,
last_activity: DateTime.utc_now()
)

jobs = insert_list(5, :job, workflow: workflow)

runs =
Enum.map(
jobs,
fn j ->
build(:run,
input_dataclip: build(:dataclip),
job: j,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_code: 0
)
end
|> with_attempt(
state: :success,
dataclip: dataclip,
starting_trigger: trigger,
started_at: build(:timestamp),
finished_at: build(:timestamp),
runs:
Enum.map(jobs, fn j ->
build(:run,
job: j,
input_dataclip: dataclip,
output_dataclip: dataclip,
started_at: build(:timestamp),
finished_at: build(:timestamp),
exit_reason: "success"
)
end)
)

insert(:attempt,
work_order: work_order,
finished_at: build(:timestamp),
starting_trigger: build(:trigger),
dataclip: build(:dataclip),
runs: runs
)

%{work_order: work_order, workflow: workflow, jobs: jobs}
end)

Expand All @@ -1701,7 +1698,7 @@ defmodule LightningWeb.RunWorkOrderTest do
log: true,
success: true,
pending: true,
killing: true,
killed: true,
running: true,
crashed: true,
failed: true
Expand All @@ -1716,15 +1713,15 @@ defmodule LightningWeb.RunWorkOrderTest do
end

view
|> form("##{scenario.work_order.id}-selection-form")
|> form("#selection-form-#{scenario.work_order.id}")
|> render_change(%{selected: true})

for job <- scenario.jobs do
assert has_element?(view, "input#job_#{job.id}")
end

view
|> form("##{scenario.work_order.id}-selection-form")
|> form("#selection-form-#{scenario.work_order.id}")
|> render_change(%{selected: false})
end
end
Expand Down

0 comments on commit f42ba29

Please sign in to comment.