6 changed files with 49 additions and 14 deletions
|
|
@ -207,9 +207,15 @@ defmodule Mv.Membership.Import.HeaderMapperTest do
|
||||||
"Email",
|
"Email",
|
||||||
"First Name",
|
"First Name",
|
||||||
"Last Name",
|
"Last Name",
|
||||||
|
"Join Date",
|
||||||
|
"Exit Date",
|
||||||
|
"Notes",
|
||||||
|
"Country",
|
||||||
|
"City",
|
||||||
"Street",
|
"Street",
|
||||||
|
"House Number",
|
||||||
"Postal Code",
|
"Postal Code",
|
||||||
"City"
|
"Membership Fee Start Date"
|
||||||
]
|
]
|
||||||
|
|
||||||
assert {:ok, %{member: member_map, custom: custom_map, unknown: unknown}} =
|
assert {:ok, %{member: member_map, custom: custom_map, unknown: unknown}} =
|
||||||
|
|
@ -218,15 +224,34 @@ defmodule Mv.Membership.Import.HeaderMapperTest do
|
||||||
assert member_map[:email] == 0
|
assert member_map[:email] == 0
|
||||||
assert member_map[:first_name] == 1
|
assert member_map[:first_name] == 1
|
||||||
assert member_map[:last_name] == 2
|
assert member_map[:last_name] == 2
|
||||||
assert member_map[:street] == 3
|
assert member_map[:join_date] == 3
|
||||||
assert member_map[:postal_code] == 4
|
assert member_map[:exit_date] == 4
|
||||||
assert member_map[:city] == 5
|
assert member_map[:notes] == 5
|
||||||
|
assert member_map[:country] == 6
|
||||||
|
assert member_map[:city] == 7
|
||||||
|
assert member_map[:street] == 8
|
||||||
|
assert member_map[:house_number] == 9
|
||||||
|
assert member_map[:postal_code] == 10
|
||||||
|
assert member_map[:membership_fee_start_date] == 11
|
||||||
assert custom_map == %{}
|
assert custom_map == %{}
|
||||||
assert unknown == []
|
assert unknown == []
|
||||||
end
|
end
|
||||||
|
|
||||||
test "maps German member field variants" do
|
test "maps German member field variants" do
|
||||||
headers = ["E-Mail", "Vorname", "Nachname", "Straße", "PLZ", "Stadt"]
|
headers = [
|
||||||
|
"E-Mail",
|
||||||
|
"Vorname",
|
||||||
|
"Nachname",
|
||||||
|
"Beitrittsdatum",
|
||||||
|
"Austrittsdatum",
|
||||||
|
"Notizen",
|
||||||
|
"Land",
|
||||||
|
"Stadt",
|
||||||
|
"Straße",
|
||||||
|
"Hausnummer",
|
||||||
|
"PLZ",
|
||||||
|
"Beitragsbeginn"
|
||||||
|
]
|
||||||
|
|
||||||
assert {:ok, %{member: member_map, custom: custom_map, unknown: unknown}} =
|
assert {:ok, %{member: member_map, custom: custom_map, unknown: unknown}} =
|
||||||
HeaderMapper.build_maps(headers, [])
|
HeaderMapper.build_maps(headers, [])
|
||||||
|
|
@ -234,9 +259,15 @@ defmodule Mv.Membership.Import.HeaderMapperTest do
|
||||||
assert member_map[:email] == 0
|
assert member_map[:email] == 0
|
||||||
assert member_map[:first_name] == 1
|
assert member_map[:first_name] == 1
|
||||||
assert member_map[:last_name] == 2
|
assert member_map[:last_name] == 2
|
||||||
assert member_map[:street] == 3
|
assert member_map[:join_date] == 3
|
||||||
assert member_map[:postal_code] == 4
|
assert member_map[:exit_date] == 4
|
||||||
assert member_map[:city] == 5
|
assert member_map[:notes] == 5
|
||||||
|
assert member_map[:country] == 6
|
||||||
|
assert member_map[:city] == 7
|
||||||
|
assert member_map[:street] == 8
|
||||||
|
assert member_map[:house_number] == 9
|
||||||
|
assert member_map[:postal_code] == 10
|
||||||
|
assert member_map[:membership_fee_start_date] == 11
|
||||||
assert custom_map == %{}
|
assert custom_map == %{}
|
||||||
assert unknown == []
|
assert unknown == []
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ defmodule MvWeb.Components.SortHeaderComponentTest do
|
||||||
:house_number,
|
:house_number,
|
||||||
:postal_code,
|
:postal_code,
|
||||||
:city,
|
:city,
|
||||||
|
:country,
|
||||||
:join_date
|
:join_date
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -100,6 +101,7 @@ defmodule MvWeb.Components.SortHeaderComponentTest do
|
||||||
assert has_element?(view, "[data-testid='street'] .opacity-40")
|
assert has_element?(view, "[data-testid='street'] .opacity-40")
|
||||||
assert has_element?(view, "[data-testid='house_number'] .opacity-40")
|
assert has_element?(view, "[data-testid='house_number'] .opacity-40")
|
||||||
assert has_element?(view, "[data-testid='postal_code'] .opacity-40")
|
assert has_element?(view, "[data-testid='postal_code'] .opacity-40")
|
||||||
|
assert has_element?(view, "[data-testid='country'] .opacity-40")
|
||||||
assert has_element?(view, "[data-testid='join_date'] .opacity-40")
|
assert has_element?(view, "[data-testid='join_date'] .opacity-40")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,11 +45,11 @@ defmodule MvWeb.GlobalSettingsLiveConfigTest do
|
||||||
{:ok, view, _html} = live(conn, ~p"/admin/import")
|
{:ok, view, _html} = live(conn, ~p"/admin/import")
|
||||||
|
|
||||||
# Generate CSV with 501 rows (exceeding custom limit of 500)
|
# Generate CSV with 501 rows (exceeding custom limit of 500)
|
||||||
header = "first_name;last_name;email;street;postal_code;city\n"
|
header = "first_name;last_name;email;country;city;street;postal_code\n"
|
||||||
|
|
||||||
rows =
|
rows =
|
||||||
for i <- 1..501 do
|
for i <- 1..501 do
|
||||||
"Row#{i};Last#{i};email#{i}@example.com;Street#{i};12345;City#{i}\n"
|
"Row#{i};Last#{i};email#{i}@example.com;Country#{i};City#{i};Street#{i};12345\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
large_csv = header <> Enum.join(rows)
|
large_csv = header <> Enum.join(rows)
|
||||||
|
|
|
||||||
|
|
@ -136,10 +136,10 @@ defmodule MvWeb.ImportLiveTest do
|
||||||
|
|
||||||
test "error list is capped and truncation message is shown", %{conn: conn} do
|
test "error list is capped and truncation message is shown", %{conn: conn} do
|
||||||
{:ok, view, _html} = live(conn, ~p"/admin/import")
|
{:ok, view, _html} = live(conn, ~p"/admin/import")
|
||||||
header = "first_name;last_name;email;street;postal_code;city\n"
|
header = "first_name;last_name;email;country;city;street;postal_code\n"
|
||||||
|
|
||||||
invalid_rows =
|
invalid_rows =
|
||||||
for i <- 1..100, do: "Row#{i};Last#{i};;Street#{i};12345;City#{i}\n"
|
for i <- 1..100, do: "Row#{i};Last#{i};;Country#{i};City#{i};Street#{i};12345\n"
|
||||||
|
|
||||||
upload_csv_file(view, header <> Enum.join(invalid_rows), "large_invalid.csv")
|
upload_csv_file(view, header <> Enum.join(invalid_rows), "large_invalid.csv")
|
||||||
submit_import(view)
|
submit_import(view)
|
||||||
|
|
@ -154,11 +154,11 @@ defmodule MvWeb.ImportLiveTest do
|
||||||
|
|
||||||
test "row limit is enforced (1001 rows rejected)", %{conn: conn} do
|
test "row limit is enforced (1001 rows rejected)", %{conn: conn} do
|
||||||
{:ok, view, _html} = live(conn, ~p"/admin/import")
|
{:ok, view, _html} = live(conn, ~p"/admin/import")
|
||||||
header = "first_name;last_name;email;street;postal_code;city\n"
|
header = "first_name;last_name;email;country;city;street;postal_code\n"
|
||||||
|
|
||||||
rows =
|
rows =
|
||||||
for i <- 1..1001 do
|
for i <- 1..1001 do
|
||||||
"Row#{i};Last#{i};email#{i}@example.com;Street#{i};12345;City#{i}\n"
|
"Row#{i};Last#{i};email#{i}@example.com;Country#{i};City#{i};Street#{i};12345\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
upload_csv_file(view, header <> Enum.join(rows), "too_many_rows.csv")
|
upload_csv_file(view, header <> Enum.join(rows), "too_many_rows.csv")
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ defmodule MvWeb.MemberLive.IndexMemberFieldsDisplayTest do
|
||||||
house_number: "123",
|
house_number: "123",
|
||||||
postal_code: "12345",
|
postal_code: "12345",
|
||||||
city: "Berlin",
|
city: "Berlin",
|
||||||
|
country: "Germany",
|
||||||
join_date: ~D[2020-01-15]
|
join_date: ~D[2020-01-15]
|
||||||
},
|
},
|
||||||
actor: system_actor
|
actor: system_actor
|
||||||
|
|
|
||||||
|
|
@ -162,6 +162,7 @@ defmodule MvWeb.MemberLive.IndexTest do
|
||||||
:house_number,
|
:house_number,
|
||||||
:postal_code,
|
:postal_code,
|
||||||
:city,
|
:city,
|
||||||
|
:country,
|
||||||
:join_date
|
:join_date
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue