Merge branch 'patch-1' of https://github.com/mr-c/arvados into mr-c-patch-1
[arvados.git] / apps / workbench / test / integration / projects_test.rb
index 1c18a436fdbb3fcbaab3de74e9a350ce3e87bbab..7a5103007f80f2eba79275a67c602a8cb7d5e3c9 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require 'integration_helper'
 require 'helpers/share_object_helper'
 require_relative 'integration_test_utils'
@@ -89,7 +93,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "projects not publicly sharable when anonymous browsing disabled" do
-    Rails.configuration.anonymous_user_token = false
+    Rails.configuration.Users.AnonymousUserToken = ""
     open_groups_sharing
     # Check for a group we do expect first, to make sure the modal's loaded.
     assert_selector(".modal-container .selectable",
@@ -99,7 +103,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "projects publicly sharable when anonymous browsing enabled" do
-    Rails.configuration.anonymous_user_token = "testonlytoken"
+    Rails.configuration.Users.AnonymousUserToken = "testonlytoken"
     open_groups_sharing
     assert_selector(".modal-container .selectable",
                     text: group_name("anonymous_group"))
@@ -128,7 +132,7 @@ class ProjectsTest < ActionDispatch::IntegrationTest
     show_object_using('active', 'groups', 'aproject', 'A Project')
     click_on "Sharing"
     click_on "Share with groups"
-    good_uuid = api_fixture("groups")["private"]["uuid"]
+    good_uuid = api_fixture("groups")["future_project_viewing_group"]["uuid"]
     assert(page.has_selector?(".selectable[data-object-uuid=\"#{good_uuid}\"]"),
            "'share with groups' listing missing owned user group")
     bad_uuid = api_fixture("groups")["asubproject"]["uuid"]
@@ -535,19 +539,19 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "error while loading tab" do
-    original_arvados_v1_base = Rails.configuration.arvados_v1_base
+    original_arvados_v1_base = Rails.configuration.Services.Controller.ExternalURL
 
     visit page_with_token 'active', '/projects/' + api_fixture('groups')['aproject']['uuid']
 
     # Point to a bad api server url to generate error
-    Rails.configuration.arvados_v1_base = "https://[::1]:1/"
+    Rails.configuration.Services.Controller.ExternalURL = "https://[::1]:1/"
     click_link 'Other objects'
     within '#Other_objects' do
       # Error
       assert_selector('a', text: 'Reload tab')
 
       # Now point back to the orig api server and reload tab
-      Rails.configuration.arvados_v1_base = original_arvados_v1_base
+      Rails.configuration.Services.Controller.ExternalURL = original_arvados_v1_base
       click_link 'Reload tab'
       assert_no_selector('a', text: 'Reload tab')
       assert_selector('button', text: 'Selection')
@@ -558,7 +562,6 @@ class ProjectsTest < ActionDispatch::IntegrationTest
   end
 
   test "add new project using projects dropdown" do
-    # verify that selection options are disabled on the project until an item is selected
     visit page_with_token 'active', '/'
 
     # Add a new project
@@ -566,13 +569,6 @@ class ProjectsTest < ActionDispatch::IntegrationTest
     click_link 'Add a new project'
     assert_text 'New project'
     assert_text 'No description provided'
-
-    # Add one more new project
-    find("#projects-menu").click
-    click_link 'Add a new project'
-    match = /New project \(\d\)/.match page.text
-    assert match, 'Expected project name not found'
-    assert_text 'No description provided'
   end
 
   test "first tab loads data when visiting other tab directly" do
@@ -737,4 +733,26 @@ class ProjectsTest < ActionDispatch::IntegrationTest
       assert_no_selector 'li', text: 'Unrestricted public data'
     end
   end
+
+  [
+    ['Workflow with input specifications', 'this workflow has inputs specified', 'Provide a value for the following'],
+  ].each do |template_name, preview_txt, process_txt|
+    test "run a process using template #{template_name} in a project" do
+      project = api_fixture('groups')['aproject']
+      visit page_with_token 'active', '/projects/' + project['uuid']
+
+      find('.btn', text: 'Run a process').click
+
+      # in the chooser, verify preview and click Next button
+      within('.modal-dialog') do
+        find('.selectable', text: template_name).click
+        assert_text preview_txt
+        find('.btn', text: 'Next: choose inputs').click
+      end
+
+      # in the process page now
+      assert_text process_txt
+      assert_text project['name']
+    end
+  end
 end