test: fee type column visibility, CSV export, export controller
FieldVisibility pseudo fields and visible selection; MembersCSV fee type column; export accepts membership_fee_type and returns Fee Type column.
This commit is contained in:
parent
f3b213ecec
commit
8db24405fa
3 changed files with 90 additions and 0 deletions
|
|
@ -199,6 +199,43 @@ defmodule Mv.Membership.MembersCSVTest do
|
|||
assert csv =~ "M,m@m.com,Paid"
|
||||
end
|
||||
|
||||
test "membership_fee_type column exports fee type name" do
|
||||
columns = [
|
||||
%{header: "First Name", kind: :member_field, key: "first_name"},
|
||||
%{header: "Email", kind: :member_field, key: "email"},
|
||||
%{header: "Fee Type", kind: :membership_fee_type, key: :membership_fee_type}
|
||||
]
|
||||
|
||||
member = %{
|
||||
first_name: "M",
|
||||
email: "m@m.com",
|
||||
membership_fee_type: %{id: "ft-1", name: "Standard"}
|
||||
}
|
||||
|
||||
iodata = MembersCSV.export([member], columns)
|
||||
csv = IO.iodata_to_binary(iodata)
|
||||
|
||||
assert csv =~ "Fee Type"
|
||||
assert csv =~ "Standard"
|
||||
assert csv =~ "M,m@m.com,Standard"
|
||||
end
|
||||
|
||||
test "membership_fee_type column exports empty when no fee type" do
|
||||
columns = [
|
||||
%{header: "First Name", kind: :member_field, key: "first_name"},
|
||||
%{header: "Fee Type", kind: :membership_fee_type, key: :membership_fee_type}
|
||||
]
|
||||
|
||||
member = %{first_name: "M", email: "m@m.com", membership_fee_type: nil}
|
||||
|
||||
iodata = MembersCSV.export([member], columns)
|
||||
csv = IO.iodata_to_binary(iodata)
|
||||
|
||||
assert csv =~ "Fee Type"
|
||||
assert csv =~ "M,"
|
||||
refute csv =~ "Standard"
|
||||
end
|
||||
|
||||
test "CSV injection: formula-like and dangerous prefixes are escaped with apostrophe" do
|
||||
member = %{
|
||||
first_name: "=SUM(A1:A10)",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue