11580: add container_requests index page
[arvados.git] / apps / workbench / test / integration / container_requests_test.rb
index 46f7e171fb21a7b6ebcb8402ec4b202775351bea..51b6b247bf7f4e33593adecc93807aa8c21a6f8b 100644 (file)
@@ -121,4 +121,41 @@ class ContainerRequestsTest < ActionDispatch::IntegrationTest
     page.assert_selector 'ellipse+text', text: cr['name'], visible: false
     page.assert_selector 'g.node>title', text: cr['uuid'], visible: false
   end
+
+  [
+    'active',
+    'admin',
+  ].each do |token|
+    test "index page as #{token} user" do
+      visit page_with_token(token, "/container_requests")
+
+      running_owner_active = api_fixture("container_requests", "requester_for_running")
+      anon_accessible_cr = api_fixture("container_requests", "running_anonymous_accessible")
+
+      # both of these CRs should be accessible to the user
+      assert_selector "a[href=\"/container_requests/#{running_owner_active['uuid']}\"]", text: running_owner_active[:name]
+      assert_selector "a[href=\"/container_requests/#{anon_accessible_cr['uuid']}\"]", text: anon_accessible_cr[:name]
+
+      # both the active user (owner) and admin can delete the "running" container_request
+      within(".cr-#{running_owner_active['uuid']}") do
+        assert_not_nil first('.glyphicon-trash')
+      end
+
+      # only admin user can delete the anonymously accessible container_request
+      within(".cr-#{anon_accessible_cr['uuid']}") do
+        if token == 'admin'
+          assert_not_nil first('.glyphicon-trash')
+        else
+          assert_nil first('.glyphicon-trash')
+        end
+      end
+
+      # verify the search box in the page
+      find('.recent-container-requests-filterable-control').set("anonymous")
+      sleep 0.350 # Wait for 250ms debounce timer (see filterable.js)
+      wait_for_ajax
+      assert_no_selector "a[href=\"/container_requests/#{running_owner_active['uuid']}\"]", text: running_owner_active[:name]
+      assert_selector "a[href=\"/container_requests/#{anon_accessible_cr['uuid']}\"]", text: anon_accessible_cr[:name]
+    end
+  end
 end