fix: improve get_last_completed_cycle and fix test helpers
- Fix get_last_completed_cycle to find most recent completed cycle - Fix create_cycle helpers to delete auto-generated cycles first - Fix Ash.destroy return value handling - Fix form selectors to use specific IDs - Fix URL parameter names for filters - Fix Ash.read_one return value expectations in tests
This commit is contained in:
parent
ab7fa38010
commit
128c712dbc
12 changed files with 177 additions and 43 deletions
|
|
@ -68,7 +68,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
|
||||
{:error, {:live_redirect, %{to: to}}} =
|
||||
view
|
||||
|> form("form", form_data)
|
||||
|> form("#membership-fee-type-form", form_data)
|
||||
|> render_submit()
|
||||
|
||||
assert to == "/membership_fee_types"
|
||||
|
|
@ -84,7 +84,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
end
|
||||
|
||||
test "interval field is editable on create", %{conn: conn} do
|
||||
{:ok, view, html} = live(conn, "/membership_fee_types/new")
|
||||
{:ok, _view, html} = live(conn, "/membership_fee_types/new")
|
||||
|
||||
# Interval field should be editable (not disabled)
|
||||
refute html =~ "disabled" || html =~ "readonly"
|
||||
|
|
@ -95,7 +95,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
test "loads existing type data", %{conn: conn} do
|
||||
fee_type = create_fee_type(%{name: "Existing Type", amount: Decimal.new("60.00")})
|
||||
|
||||
{:ok, view, html} = live(conn, "/membership_fee_types/#{fee_type.id}/edit")
|
||||
{:ok, _view, html} = live(conn, "/membership_fee_types/#{fee_type.id}/edit")
|
||||
|
||||
assert html =~ "Existing Type"
|
||||
assert html =~ "60" || html =~ "60,00"
|
||||
|
|
@ -104,7 +104,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
test "interval field is grayed out on edit", %{conn: conn} do
|
||||
fee_type = create_fee_type(%{interval: :yearly})
|
||||
|
||||
{:ok, view, html} = live(conn, "/membership_fee_types/#{fee_type.id}/edit")
|
||||
{:ok, _view, html} = live(conn, "/membership_fee_types/#{fee_type.id}/edit")
|
||||
|
||||
# Interval field should be disabled
|
||||
assert html =~ "disabled" || html =~ "readonly"
|
||||
|
|
@ -119,7 +119,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
# Change amount
|
||||
html =
|
||||
view
|
||||
|> form("form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> form("#membership-fee-type-form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> render_change()
|
||||
|
||||
# Should show warning
|
||||
|
|
@ -139,7 +139,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
# Change amount
|
||||
html =
|
||||
view
|
||||
|> form("form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> form("#membership-fee-type-form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> render_change()
|
||||
|
||||
# Should show affected count
|
||||
|
|
@ -153,13 +153,18 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
|
||||
# Change amount and confirm
|
||||
view
|
||||
|> form("form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> form("#membership-fee-type-form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> render_change()
|
||||
|
||||
view
|
||||
|> element("button[phx-click='confirm_amount_change']")
|
||||
|> render_click()
|
||||
|
||||
# Submit the form to actually save the change
|
||||
view
|
||||
|> form("#membership-fee-type-form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> render_submit()
|
||||
|
||||
# Amount should be updated
|
||||
updated_type = Ash.read_one!(MembershipFeeType |> Ash.Query.filter(id == ^fee_type.id))
|
||||
assert updated_type.amount == Decimal.new("75.00")
|
||||
|
|
@ -172,7 +177,7 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
|
||||
# Change amount and cancel
|
||||
view
|
||||
|> form("form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> form("#membership-fee-type-form", %{"membership_fee_type[amount]" => "75.00"})
|
||||
|> render_change()
|
||||
|
||||
view
|
||||
|
|
@ -190,7 +195,10 @@ defmodule MvWeb.MembershipFeeTypeLive.FormTest do
|
|||
# Submit with invalid data
|
||||
html =
|
||||
view
|
||||
|> form("form", %{"membership_fee_type[name]" => "", "membership_fee_type[amount]" => ""})
|
||||
|> form("#membership-fee-type-form", %{
|
||||
"membership_fee_type[name]" => "",
|
||||
"membership_fee_type[amount]" => ""
|
||||
})
|
||||
|> render_submit()
|
||||
|
||||
# Should show validation errors
|
||||
|
|
|
|||
|
|
@ -57,13 +57,13 @@ defmodule MvWeb.MembershipFeeTypeLive.IndexTest do
|
|||
|
||||
describe "list display" do
|
||||
test "displays all membership fee types with correct data", %{conn: conn} do
|
||||
fee_type1 =
|
||||
_fee_type1 =
|
||||
create_fee_type(%{name: "Regular", amount: Decimal.new("60.00"), interval: :yearly})
|
||||
|
||||
fee_type2 =
|
||||
_fee_type2 =
|
||||
create_fee_type(%{name: "Reduced", amount: Decimal.new("30.00"), interval: :yearly})
|
||||
|
||||
{:ok, view, html} = live(conn, "/membership_fee_types")
|
||||
{:ok, _view, html} = live(conn, "/membership_fee_types")
|
||||
|
||||
assert html =~ "Regular"
|
||||
assert html =~ "Reduced"
|
||||
|
|
@ -80,7 +80,7 @@ defmodule MvWeb.MembershipFeeTypeLive.IndexTest do
|
|||
create_member(%{membership_fee_type_id: fee_type.id})
|
||||
end)
|
||||
|
||||
{:ok, view, html} = live(conn, "/membership_fee_types")
|
||||
{:ok, _view, html} = live(conn, "/membership_fee_types")
|
||||
|
||||
assert html =~ "3" || html =~ "Members" || html =~ "Mitglieder"
|
||||
end
|
||||
|
|
@ -115,7 +115,7 @@ defmodule MvWeb.MembershipFeeTypeLive.IndexTest do
|
|||
fee_type = create_fee_type(%{interval: :yearly})
|
||||
create_member(%{membership_fee_type_id: fee_type.id})
|
||||
|
||||
{:ok, view, html} = live(conn, "/membership_fee_types")
|
||||
{:ok, _view, html} = live(conn, "/membership_fee_types")
|
||||
|
||||
# Delete button should be disabled
|
||||
assert html =~ "disabled" || html =~ "cursor-not-allowed"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue