This commit is contained in:
parent
9b9e7ec995
commit
8e387d8e17
5 changed files with 429 additions and 79 deletions
|
|
@ -70,10 +70,10 @@ defmodule MvWeb.MemberExportControllerTest do
|
|||
body = response(conn, 200)
|
||||
lines = String.split(body, "\n", trim: true)
|
||||
|
||||
# Header + 2 data rows
|
||||
# Header + 2 data rows (headers are localized labels)
|
||||
assert length(lines) == 3
|
||||
assert hd(lines) =~ "first_name"
|
||||
assert hd(lines) =~ "email"
|
||||
assert hd(lines) =~ "First Name"
|
||||
assert hd(lines) =~ "Email"
|
||||
assert body =~ "Alice"
|
||||
assert body =~ "Bob"
|
||||
refute body =~ "Carol"
|
||||
|
|
@ -107,9 +107,9 @@ defmodule MvWeb.MemberExportControllerTest do
|
|||
body = response(conn, 200)
|
||||
lines = String.split(body, "\n", trim: true)
|
||||
|
||||
# Header + at least 3 data rows
|
||||
# Header + at least 3 data rows (headers are localized labels)
|
||||
assert length(lines) >= 4
|
||||
assert hd(lines) =~ "first_name"
|
||||
assert hd(lines) =~ "First Name"
|
||||
assert body =~ "Alice"
|
||||
assert body =~ "Bob"
|
||||
assert body =~ "Carol"
|
||||
|
|
@ -138,9 +138,106 @@ defmodule MvWeb.MemberExportControllerTest do
|
|||
body = response(conn, 200)
|
||||
header = body |> String.split("\n", trim: true) |> hd()
|
||||
|
||||
assert header =~ "first_name"
|
||||
assert header =~ "email"
|
||||
assert header =~ "First Name"
|
||||
assert header =~ "Email"
|
||||
refute header =~ "unknown_field"
|
||||
end
|
||||
|
||||
test "export includes membership_fee_status column when requested", %{
|
||||
conn: conn,
|
||||
member1: m1
|
||||
} do
|
||||
payload = %{
|
||||
"selected_ids" => [m1.id],
|
||||
"member_fields" => ["first_name", "membership_fee_status"],
|
||||
"custom_field_ids" => [],
|
||||
"query" => nil,
|
||||
"sort_field" => nil,
|
||||
"sort_order" => nil
|
||||
}
|
||||
|
||||
conn = get(conn, "/members")
|
||||
csrf_token = csrf_token_from_conn(conn)
|
||||
|
||||
conn =
|
||||
post(conn, "/members/export.csv", %{
|
||||
"payload" => Jason.encode!(payload),
|
||||
"_csrf_token" => csrf_token
|
||||
})
|
||||
|
||||
assert conn.status == 200
|
||||
body = response(conn, 200)
|
||||
header = body |> String.split("\n", trim: true) |> hd()
|
||||
|
||||
assert header =~ "First Name"
|
||||
assert header =~ "Membership Fee Status"
|
||||
assert body =~ "Alice"
|
||||
end
|
||||
|
||||
test "export with payment_status alias: header shows Membership Fee Status", %{
|
||||
conn: conn,
|
||||
member1: m1
|
||||
} do
|
||||
payload = %{
|
||||
"selected_ids" => [m1.id],
|
||||
"member_fields" => ["first_name", "payment_status"],
|
||||
"custom_field_ids" => [],
|
||||
"query" => nil,
|
||||
"sort_field" => nil,
|
||||
"sort_order" => nil
|
||||
}
|
||||
|
||||
conn = get(conn, "/members")
|
||||
csrf_token = csrf_token_from_conn(conn)
|
||||
|
||||
conn =
|
||||
post(conn, "/members/export.csv", %{
|
||||
"payload" => Jason.encode!(payload),
|
||||
"_csrf_token" => csrf_token
|
||||
})
|
||||
|
||||
assert conn.status == 200
|
||||
body = response(conn, 200)
|
||||
header = body |> String.split("\n", trim: true) |> hd()
|
||||
|
||||
assert header =~ "Membership Fee Status"
|
||||
assert body =~ "Alice"
|
||||
end
|
||||
|
||||
test "export with show_current_cycle: membership fee status column exists stably", %{
|
||||
conn: conn,
|
||||
member1: _m1,
|
||||
member2: _m2,
|
||||
member3: _m3
|
||||
} do
|
||||
payload = %{
|
||||
"selected_ids" => [],
|
||||
"member_fields" => ["first_name", "email", "membership_fee_status"],
|
||||
"custom_field_ids" => [],
|
||||
"query" => nil,
|
||||
"sort_field" => nil,
|
||||
"sort_order" => nil,
|
||||
"show_current_cycle" => true
|
||||
}
|
||||
|
||||
conn = get(conn, "/members")
|
||||
csrf_token = csrf_token_from_conn(conn)
|
||||
|
||||
conn =
|
||||
post(conn, "/members/export.csv", %{
|
||||
"payload" => Jason.encode!(payload),
|
||||
"_csrf_token" => csrf_token
|
||||
})
|
||||
|
||||
assert conn.status == 200
|
||||
body = response(conn, 200)
|
||||
lines = String.split(body, "\n", trim: true)
|
||||
|
||||
assert length(lines) >= 4
|
||||
header = hd(lines)
|
||||
assert header =~ "First Name"
|
||||
assert header =~ "Email"
|
||||
assert header =~ "Membership Fee Status"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue