X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/224f384d411bb1b4cccc7165c55bb64fd5c695ad..74fec3cd8284eae4829dad2c287588d52c621c4b:/apps/workbench/test/integration/container_requests_test.rb?ds=sidebyside diff --git a/apps/workbench/test/integration/container_requests_test.rb b/apps/workbench/test/integration/container_requests_test.rb index df6584ebb6..151654b231 100644 --- a/apps/workbench/test/integration/container_requests_test.rb +++ b/apps/workbench/test/integration/container_requests_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'integration_helper' class ContainerRequestsTest < ActionDispatch::IntegrationTest @@ -96,4 +100,62 @@ class ContainerRequestsTest < ActionDispatch::IntegrationTest wait_for_ajax assert_text 'This container is queued' end + + test "Run button enabled when workflow is empty and no inputs are needed" do + visit page_with_token("active") + + find('.btn', text: 'Run a process').click + within('.modal-dialog') do + find('.selectable', text: 'Valid workflow with no definition yaml').click + find('.btn', text: 'Next: choose inputs').click + end + + assert_text 'This workflow does not need any further inputs' + page.assert_selector 'a', text: 'Run' + end + + test "Provenance graph shown on committed container requests" do + cr = api_fixture('container_requests', 'completed') + visit page_with_token("active", "/container_requests/#{cr['uuid']}") + assert page.has_text? 'Provenance' + click_link 'Provenance' + wait_for_ajax + # Check for provenance graph existance + page.assert_selector '#provenance_svg' + page.assert_selector 'ellipse+text', text: cr['name'], visible: false + page.assert_selector 'g.node>title', text: cr['uuid'], visible: false + end + + test "index page" do + visit page_with_token("active", "/container_requests") + + within(".arv-recent-container-requests") do + page.execute_script "window.scrollBy(0,999000)" + wait_for_ajax + end + + 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] + + # user can delete the "running" container_request + within(".cr-#{running_owner_active['uuid']}") do + assert_not_nil first('.glyphicon-trash') + end + + # user can not delete the anonymously accessible container_request + within(".cr-#{anon_accessible_cr['uuid']}") do + assert_nil first('.glyphicon-trash') + 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