@@ -9,6 +9,88 @@ def test_polymorphic_type
9
9
assert_equal ( relationship . polymorphic_type , "imageable_type" )
10
10
end
11
11
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
+
12
94
def test_exclude_links_on_relationship
13
95
relationship = JSONAPI ::Relationship ::ToOne . new "foo" , exclude_links : :none
14
96
assert_equal [ ] , relationship . _exclude_links
0 commit comments