Skip to content

Commit 617aedb

Browse files
committed
Fix flappy check_include tests
1 parent be2912f commit 617aedb

File tree

1 file changed

+35
-7
lines changed

1 file changed

+35
-7
lines changed

test/unit/jsonapi_request/jsonapi_request_test.rb

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,49 +48,67 @@ def test_parse_blank_includes
4848
end
4949

5050
def test_check_include_allowed
51+
reset_includes
5152
assert JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "isoCurrency".partition('.'))
53+
ensure
54+
reset_includes
5255
end
5356

5457
def test_check_nested_include_allowed
58+
reset_includes
5559
assert JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "employee.expenseEntries".partition('.'))
60+
ensure
61+
reset_includes
5662
end
5763

5864
def test_check_include_relationship_does_not_exist
65+
reset_includes
66+
5967
assert_raises JSONAPI::Exceptions::InvalidInclude do
6068
assert JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "foo".partition('.'))
6169
end
70+
ensure
71+
reset_includes
6272
end
6373

6474
def test_check_nested_include_relationship_does_not_exist_wrong_format
75+
reset_includes
76+
6577
assert_raises JSONAPI::Exceptions::InvalidInclude do
6678
assert JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "employee.expense-entries".partition('.'))
6779
end
80+
ensure
81+
reset_includes
6882
end
6983

7084
def test_check_include_has_one_not_allowed_default
85+
reset_includes
86+
7187
assert JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "isoCurrency".partition('.'))
7288
JSONAPI.configuration.default_allow_include_to_one = false
7389

7490
assert_raises JSONAPI::Exceptions::InvalidInclude do
7591
JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "isoCurrency".partition('.'))
7692
end
77-
ensure
78-
JSONAPI.configuration.default_allow_include_to_one = true
93+
ensure
94+
reset_includes
7995
end
8096

8197
def test_check_include_has_one_not_allowed_resource
98+
reset_includes
99+
82100
assert JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "isoCurrency".partition('.'))
83101
ExpenseEntryResource._relationship(:iso_currency).allow_include = false
84102

85103
assert_raises JSONAPI::Exceptions::InvalidInclude do
86104
JSONAPI::RequestParser.new.check_include(ExpenseEntryResource, "isoCurrency".partition('.'))
87105
end
88106
ensure
89-
ExpenseEntryResource._relationship(:iso_currency).allow_include = nil
107+
reset_includes
90108
end
91109

92110
def test_check_include_has_many_not_allowed_default
93-
JSONAPI.configuration.default_allow_include_to_many = true
111+
reset_includes
94112

95113
assert JSONAPI::RequestParser.new.check_include(EmployeeResource, "expenseEntries".partition('.'))
96114
JSONAPI.configuration.default_allow_include_to_many = false
@@ -99,18 +117,20 @@ def test_check_include_has_many_not_allowed_default
99117
JSONAPI::RequestParser.new.check_include(EmployeeResource, "expenseEntries".partition('.'))
100118
end
101119
ensure
102-
JSONAPI.configuration.default_allow_include_to_many = true
120+
reset_includes
103121
end
104122

105-
def test_check_include_has_many_not_allowed_relationship
123+
def test_check_include_has_many_not_allowed_resource
124+
reset_includes
125+
106126
assert JSONAPI::RequestParser.new.check_include(EmployeeResource, "expenseEntries".partition('.'))
107127
EmployeeResource._relationship(:expense_entries).allow_include = false
108128

109129
assert_raises JSONAPI::Exceptions::InvalidInclude do
110130
JSONAPI::RequestParser.new.check_include(EmployeeResource, "expenseEntries".partition('.'))
111131
end
112132
ensure
113-
EmployeeResource._relationship(:expense_entries).allow_include = nil
133+
reset_includes
114134
end
115135

116136
def test_parse_dasherized_with_dasherized_include
@@ -308,4 +328,12 @@ def test_parse_sort_with_relationships
308328
def setup_request
309329
@request = JSONAPI::RequestParser.new
310330
end
331+
332+
def reset_includes
333+
JSONAPI.configuration.json_key_format = :camelized_key
334+
JSONAPI.configuration.default_allow_include_to_one = true
335+
JSONAPI.configuration.default_allow_include_to_many = true
336+
ExpenseEntryResource._relationship(:iso_currency).allow_include = nil
337+
EmployeeResource._relationship(:expense_entries).allow_include = nil
338+
end
311339
end

0 commit comments

Comments
 (0)