@@ -20,92 +20,75 @@ defmodule KaffyTest do
20
20
assert is_nil ( pet . name )
21
21
end
22
22
23
- describe "Kaffy.Resource " do
24
- alias Kaffy.Resource
23
+ describe "Kaffy.ResourceSchema " do
24
+ alias Kaffy.ResourceSchema
25
25
26
26
test "excluded_fields should return primary keys" do
27
- assert [ :id ] == Resource . excluded_fields ( Person )
28
- assert [ :id ] == Resource . excluded_fields ( Pet )
27
+ assert [ :id ] == ResourceSchema . excluded_fields ( Person )
28
+ assert [ :id ] == ResourceSchema . excluded_fields ( Pet )
29
29
end
30
30
31
- test "primary_keys /1 should return a list of primary keys " do
32
- assert [ :id ] == Resource . primary_keys ( Person )
33
- assert [ :id ] == Resource . primary_keys ( Pet )
31
+ test "primary_key /1 should return a primary key " do
32
+ assert [ :id ] == ResourceSchema . primary_key ( Person )
33
+ assert [ :id ] == ResourceSchema . primary_key ( Pet )
34
34
end
35
35
36
36
test "kaffy_field_name/2 should return the name of the field" do
37
- assert "Address" == Resource . kaffy_field_name ( nil , :address )
38
- assert "Created_at " == Resource . kaffy_field_name ( nil , :created_at )
37
+ assert "Address" == ResourceSchema . kaffy_field_name ( nil , :address )
38
+ assert "Created At " == ResourceSchema . kaffy_field_name ( nil , :created_at )
39
39
person = % Person { name: "Abdullah" }
40
40
f = { :status , % { name: "Yes" } }
41
- assert "Yes" == Resource . kaffy_field_name ( person , f )
41
+ assert "Yes" == ResourceSchema . kaffy_field_name ( person , f )
42
42
f = { :status , % { name: fn p -> String . upcase ( p . name ) end } }
43
- assert "ABDULLAH" == Resource . kaffy_field_name ( person , f )
43
+ assert "ABDULLAH" == ResourceSchema . kaffy_field_name ( person , f )
44
44
f = { :status , % { value: "something" } }
45
- assert "Status" == Resource . kaffy_field_name ( person , f )
45
+ assert "Status" == ResourceSchema . kaffy_field_name ( person , f )
46
46
end
47
47
48
48
test "kaffy_field_value/2 should return the value of the field" do
49
49
person = % Person { name: "Abdullah" }
50
- assert "Abdullah" == Resource . kaffy_field_value ( person , :name )
50
+ assert "Abdullah" == ResourceSchema . kaffy_field_value ( person , :name )
51
51
field = { :name , % { value: "Esmail" } }
52
- assert "Esmail" == Resource . kaffy_field_value ( person , field )
52
+ assert "Esmail" == ResourceSchema . kaffy_field_value ( nil , person , field )
53
53
field = { :name , % { value: fn p -> "Mr. #{ p . name } " end } }
54
- assert "Mr. Abdullah" == Resource . kaffy_field_value ( person , field )
54
+ assert "Mr. Abdullah" == ResourceSchema . kaffy_field_value ( nil , person , field )
55
55
field = { :name , % { name: fn p -> "Mr. #{ p . name } " end } }
56
- assert "Abdullah" == Resource . kaffy_field_value ( person , field )
57
- end
58
-
59
- test "fields/1 should return all the fields of a schema without associations" do
60
- fields = Resource . fields ( Person )
61
- assert is_list ( fields )
62
- assert Enum . all? ( fields , fn f -> is_atom ( f ) end )
63
- [ first | _ ] = fields
64
- assert first == :id
65
- assert length ( fields ) == 6
56
+ assert "Abdullah" == ResourceSchema . kaffy_field_value ( nil , person , field )
66
57
end
67
58
68
59
test "associations/1 must return all associations for the schema" do
69
- associations = Resource . associations ( Person )
60
+ associations = ResourceSchema . associations ( Person )
70
61
assert [ :pets ] == associations
71
- pet_assoc = Resource . associations ( Pet )
62
+ pet_assoc = ResourceSchema . associations ( Pet )
72
63
assert [ :person ] == pet_assoc
73
64
end
74
65
75
66
test "association/1 must return information about the association" do
76
- person_assoc = Resource . association ( Person , :pets )
67
+ person_assoc = ResourceSchema . association ( Person , :pets )
77
68
assert Ecto.Association.Has == person_assoc . __struct__
78
69
assert person_assoc . cardinality == :many
79
70
assert person_assoc . queryable == Pet
80
71
81
- pet_assoc = Resource . association ( Pet , :person )
72
+ pet_assoc = ResourceSchema . association ( Pet , :person )
82
73
assert Ecto.Association.BelongsTo == pet_assoc . __struct__
83
74
assert pet_assoc . cardinality == :one
84
75
assert pet_assoc . queryable == Person
85
76
end
86
77
87
78
test "association_schema/2 must return the schema of the association" do
88
- assert Pet == Resource . association_schema ( Person , :pets )
89
- assert Person == Resource . association_schema ( Pet , :person )
90
- end
91
-
92
- test "form_label/2 should return a label tag" do
93
- { :safe , label_tag } = Resource . form_label ( :user , "My name" )
94
- assert is_list ( label_tag )
95
- label_string = to_string ( label_tag )
96
- assert String . contains? ( label_string , "<label" )
97
- assert String . contains? ( label_string , "user" )
98
- assert String . contains? ( label_string , "My name" )
79
+ assert Pet == ResourceSchema . association_schema ( Person , :pets )
80
+ assert Person == ResourceSchema . association_schema ( Pet , :person )
99
81
end
100
82
end
101
83
102
84
describe "Kaffy.ResourceAdmin" do
103
85
alias Kaffy.ResourceAdmin
104
86
105
- test "index/1 should return a keyword list of fields and their values" do
106
- assert Kaffy.Resource . fields ( Person ) == ResourceAdmin . index ( schema: Person )
107
- custom_index = ResourceAdmin . index ( schema: Person , admin: PersonAdmin )
108
- assert [ :name , :married ] == Keyword . keys ( custom_index )
109
- end
87
+ # [Qizot] I don't know if this test should be valid anymore if associations are allowed
88
+ # test "index/1 should return a keyword list of fields and their values" do
89
+ # assert Kaffy.ResourceSchema.fields(Person) == ResourceAdmin.index(schema: Person)
90
+ # custom_index = ResourceAdmin.index(schema: Person, admin: PersonAdmin)
91
+ # assert [:name, :married] == Keyword.keys(custom_index)
92
+ # end
110
93
end
111
94
end
0 commit comments