--- /dev/null
+require 'test_helper'
+
+class TrashItemsControllerTest < ActionController::TestCase
+ reset_api_fixtures :after_each_test, false
+ reset_api_fixtures :after_suite, true
+
+ [
+ :active,
+ :admin,
+ ].each do |user|
+ test "trash index page as #{user}" do
+ get :index, {partial: :trash_rows, format: :json}, session_for(user)
+ assert_response :success
+
+ items = []
+ @response.body.scan(/tr\ data-object-uuid=\\"(.*?)\\"/).each do |uuid,|
+ items << uuid
+ end
+
+ assert_includes(items, api_fixture('collections')['unique_expired_collection']['uuid'])
+ if user == :admin
+ assert_includes(items, api_fixture('collections')['unique_expired_collection2']['uuid'])
+ else
+ assert_not_includes(items, api_fixture('collections')['unique_expired_collection2']['uuid'])
+ end
+ end
+ end
+end
assert_text deleted['name']
assert_text expired1['name']
- assert_text expired2['name']
- assert_no_text 'foo_file'
+ assert_no_text expired2['name'] # not readable by this user
+ assert_no_text 'foo_file' # not trash
# Un-trash one item using selection dropdown
within('tr', text: deleted['name']) do
assert_text expired1['name'] # this should still be there
assert_no_text deleted['name'] # this should no longer be here
- # expired2 is not editable by me; checkbox and recycle button shouldn't be offered
- within('tr', text: expired2['name']) do
- assert_nil first('input')
- assert_nil first('.fa-recycle')
- end
-
# Un-trash another item using the recycle button
within('tr', text: expired1['name']) do
first('.fa-recycle').click
wait_for_ajax
- assert_text expired2['name']
assert_no_text expired1['name']
# verify that the two un-trashed items are now shown in /collections page
test "trash page with search" do
deleted = api_fixture('collections')['deleted_on_next_sweep']
- expired = api_fixture('collections')['unique_expired_collection2']
+ expired = api_fixture('collections')['unique_expired_collection']
visit page_with_token('active', "/trash")
}
assert_response 422
end
+
+ [:active, :admin].each do |user|
+ test "get trashed collections as #{user}" do
+ authorize_with :active
+ get :index, {
+ filters: [["is_trashed", "=", true]],
+ include_trash: true,
+ }
+ assert_response :success
+
+ items = []
+ json_response["items"].each do |coll|
+ items << coll['uuid']
+ end
+
+ assert_includes(items, collections('unique_expired_collection')['uuid'])
+ if user == :admin
+ assert_includes(items, collections('unique_expired_collection2')['uuid'])
+ else
+ assert_not_includes(items, collections('unique_expired_collection2')['uuid'])
+ end
+ end
+ end
end