@@ -9,6 +9,88 @@ def test_polymorphic_type
99 assert_equal ( relationship . polymorphic_type , "imageable_type" )
1010 end
1111
12+ def test_global_exclude_links_configuration_on_relationship
13+ JSONAPI . configuration . default_exclude_links = :none
14+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
15+ assert_equal [ ] , relationship . _exclude_links
16+ refute relationship . exclude_link? ( :self )
17+ refute relationship . exclude_link? ( "self" )
18+
19+ JSONAPI . configuration . default_exclude_links = :default
20+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
21+ assert_equal [ :self , :related ] , relationship . _exclude_links
22+ assert relationship . exclude_link? ( :self )
23+ assert relationship . exclude_link? ( "self" )
24+ assert relationship . exclude_link? ( :related )
25+ assert relationship . exclude_link? ( "related" )
26+
27+ JSONAPI . configuration . default_exclude_links = "none"
28+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
29+ assert_equal [ ] , relationship . _exclude_links
30+ refute relationship . exclude_link? ( :self )
31+ refute relationship . exclude_link? ( "self" )
32+
33+ JSONAPI . configuration . default_exclude_links = "default"
34+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
35+ assert_equal [ :self , :related ] , relationship . _exclude_links
36+ assert relationship . exclude_link? ( :self )
37+ assert relationship . exclude_link? ( "self" )
38+
39+ JSONAPI . configuration . default_exclude_links = :none
40+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
41+ assert_equal [ ] , relationship . _exclude_links
42+ refute relationship . exclude_link? ( :self )
43+ refute relationship . exclude_link? ( "self" )
44+
45+ JSONAPI . configuration . default_exclude_links = [ :self ]
46+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
47+ assert_equal [ :self ] , relationship . _exclude_links
48+ assert relationship . exclude_link? ( :self )
49+ assert relationship . exclude_link? ( "self" )
50+
51+ JSONAPI . configuration . default_exclude_links = :none
52+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
53+ assert_equal [ ] , relationship . _exclude_links
54+ refute relationship . exclude_link? ( :self )
55+ refute relationship . exclude_link? ( "self" )
56+
57+ JSONAPI . configuration . default_exclude_links = [ "self" , :related ]
58+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
59+ assert_equal [ :self , :related ] , relationship . _exclude_links
60+ assert relationship . exclude_link? ( :self )
61+ assert relationship . exclude_link? ( "self" )
62+
63+ JSONAPI . configuration . default_exclude_links = [ ]
64+ relationship = JSONAPI ::Relationship ::ToOne . new "foo"
65+ assert_equal [ ] , relationship . _exclude_links
66+ refute relationship . exclude_link? ( :self )
67+ refute relationship . exclude_link? ( "self" )
68+
69+ assert_raises do
70+ JSONAPI . configuration . default_exclude_links = :self
71+ JSONAPI ::Relationship ::ToOne . new "foo"
72+ end
73+
74+ # Test if the relationships will override the the global configuration
75+ JSONAPI . configuration . default_exclude_links = :default
76+ relationship = JSONAPI ::Relationship ::ToOne . new "foo" , exclude_links : :none
77+ assert_equal [ ] , relationship . _exclude_links
78+ refute relationship . exclude_link? ( :self )
79+ refute relationship . exclude_link? ( "self" )
80+ refute relationship . exclude_link? ( :related )
81+ refute relationship . exclude_link? ( "related" )
82+
83+ JSONAPI . configuration . default_exclude_links = :default
84+ relationship = JSONAPI ::Relationship ::ToOne . new "foo" , exclude_links : [ :self ]
85+ assert_equal [ :self ] , relationship . _exclude_links
86+ refute relationship . exclude_link? ( :related )
87+ refute relationship . exclude_link? ( "related" )
88+ assert relationship . exclude_link? ( :self )
89+ assert relationship . exclude_link? ( "self" )
90+ ensure
91+ JSONAPI . configuration . default_exclude_links = :none
92+ end
93+
1294 def test_exclude_links_on_relationship
1395 relationship = JSONAPI ::Relationship ::ToOne . new "foo" , exclude_links : :none
1496 assert_equal [ ] , relationship . _exclude_links
0 commit comments