20032: Fix unnecessary race in test.
[arvados.git] / apps / workbench / test / controllers / disabled_api_test.rb
index a41d87f31ab34187804bbfb25beb12da310f9aea..9144564c912bb96735b4ce967e06b2e1795ec30e 100644 (file)
@@ -1,7 +1,14 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require 'test_helper'
 require 'helpers/share_object_helper'
 
 class DisabledApiTest < ActionController::TestCase
+  reset_api_fixtures :after_each_test, false
+  reset_api_fixtures :after_suite, false
+
   test "dashboard recent processes when pipeline_instance index API is disabled" do
     @controller = ProjectsController.new
 
@@ -9,9 +16,21 @@ class DisabledApiTest < ActionController::TestCase
     dd[:resources][:pipeline_instances][:methods].delete(:index)
     ArvadosApiClient.any_instance.stubs(:discovery).returns(dd)
 
-    get :index, {}, session_for(:active)
+    get :index, params: {}, session: session_for(:active)
     assert_includes @response.body, "zzzzz-xvhdp-cr4runningcntnr" # expect crs
     assert_not_includes @response.body, "zzzzz-d1hrv-"   # expect no pipelines
+    assert_includes @response.body, "Run a process"
+  end
+
+  test "dashboard compute node status not shown when pipeline_instance index API is disabled" do
+    @controller = ProjectsController.new
+
+    dd = ArvadosApiClient.new_or_current.discovery.deep_dup
+    dd[:resources][:pipeline_instances][:methods].delete(:index)
+    ArvadosApiClient.any_instance.stubs(:discovery).returns(dd)
+
+    get :index, params: {}, session: session_for(:active)
+    assert_not_includes @response.body, "compute-node-summary-pane"
   end
 
   [
@@ -27,19 +46,20 @@ class DisabledApiTest < ActionController::TestCase
       dd[:resources][ctrl_name][:methods].delete(:index)
       ArvadosApiClient.any_instance.stubs(:discovery).returns(dd)
 
-      get :index, {}, session_for(:active)
+      get :index, params: {}, session: session_for(:active)
       assert_response 404
     end
   end
 
   [
+    :admin,
     :active,
     nil,
   ].each do |user|
     test "project tabs as user #{user} when pipeline related index APIs are disabled" do
       @controller = ProjectsController.new
 
-      Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token']
+      Rails.configuration.Users.AnonymousUserToken = api_fixture('api_client_authorizations')['anonymous']['api_token']
 
       dd = ArvadosApiClient.new_or_current.discovery.deep_dup
       dd[:resources][:pipeline_templates][:methods].delete(:index)
@@ -48,9 +68,9 @@ class DisabledApiTest < ActionController::TestCase
       proj_uuid = api_fixture('groups')['anonymously_accessible_project']['uuid']
 
       if user
-        get(:show, {id: proj_uuid}, session_for(user))
+        get(:show, params: {id: proj_uuid}, session: session_for(user))
       else
-        get(:show, {id: proj_uuid})
+        get(:show, params: {id: proj_uuid})
       end
 
       resp = @response.body
@@ -58,6 +78,7 @@ class DisabledApiTest < ActionController::TestCase
       assert_includes resp, "href=\"#Pipelines_and_processes\""
       assert_includes resp, "href=\"#Workflows\""
       assert_not_includes resp, "href=\"#Pipeline_templates\""
+      assert_includes @response.body, "Run a process" if user == :admin
     end
   end
 end