@@ -215,4 +215,46 @@ class EditorTest < ActiveSupport::TestCase
215215 assert_equal trainer , another_event . user
216216 assert_equal provider . user , event . user
217217 end
218+
219+ test 'get_editable_providers' do
220+ curator = users ( :curator )
221+ admin = users ( :admin )
222+ owner = users ( :another_regular_user )
223+ editor = users ( :collaborative_user )
224+ provider = content_providers ( :goblet )
225+ provider2 = content_providers ( :iann )
226+ provider3 = owner . content_providers . create! ( title : 'Something' , url : 'https://website.internet' )
227+ provider . editors << editor
228+
229+ # Curator
230+ assert_includes curator . get_editable_providers , provider
231+ assert_includes curator . get_editable_providers , provider2
232+ assert_includes curator . get_editable_providers , provider3
233+
234+ # Admin
235+ assert_includes admin . get_editable_providers , provider
236+ assert_includes admin . get_editable_providers , provider2
237+ assert_includes admin . get_editable_providers , provider3
238+
239+ # ContentProvider owner
240+ assert_not_includes owner . get_editable_providers , provider
241+ assert_not_includes owner . get_editable_providers , provider2
242+ assert_includes owner . get_editable_providers , provider3
243+
244+ # Editor
245+ assert_includes editor . get_editable_providers , provider
246+ assert_not_includes editor . get_editable_providers , provider2
247+ assert_not_includes editor . get_editable_providers , provider3
248+ end
249+
250+ test 'get_editable_providers should not create records as a side-effect' do
251+ provider = content_providers ( :goblet )
252+ curator = users ( :curator )
253+
254+ assert_empty provider . editors
255+ assert_no_difference ( -> { provider . editors . count } ) do
256+ assert_includes curator . get_editable_providers , provider
257+ end
258+ assert_empty provider . reload . editors
259+ end
218260end
0 commit comments