X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/6fcd07063276bb57a751fa21bd6ab416b4092b3c..2f66d4cc05e9442a9bb69969744d0750a02a1ed4:/apps/workbench/test/controllers/repositories_controller_test.rb diff --git a/apps/workbench/test/controllers/repositories_controller_test.rb b/apps/workbench/test/controllers/repositories_controller_test.rb index 25bf557685..a5d7209764 100644 --- a/apps/workbench/test/controllers/repositories_controller_test.rb +++ b/apps/workbench/test/controllers/repositories_controller_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'test_helper' require 'helpers/repository_stub_helper' require 'helpers/share_object_helper' @@ -13,11 +17,11 @@ class RepositoriesControllerTest < ActionController::TestCase test "#{user} shares repository with a user and group" do uuid_list = [api_fixture("groups")["future_project_viewing_group"]["uuid"], api_fixture("users")["future_project_user"]["uuid"]] - post(:share_with, { + post(:share_with, params: { id: api_fixture("repositories")["foo"]["uuid"], uuids: uuid_list, format: "json"}, - session_for(user)) + session: session_for(user)) assert_response :success assert_equal(uuid_list, json_response["success"]) end @@ -25,11 +29,11 @@ class RepositoriesControllerTest < ActionController::TestCase test "user with repository read permission cannot add permissions" do share_uuid = api_fixture("users")["project_viewer"]["uuid"] - post(:share_with, { + post(:share_with, params: { id: api_fixture("repositories")["arvados"]["uuid"], uuids: [share_uuid], format: "json"}, - session_for(:spectator)) + session: session_for(:spectator)) assert_response 422 assert(json_response["errors"].andand. any? { |msg| msg.start_with?("#{share_uuid}: ") }, @@ -53,13 +57,13 @@ class RepositoriesControllerTest < ActionController::TestCase [:admin, ['#Attributes', '#Sharing', '#Advanced']], ].each do |user, expected_panes| test "#{user} sees panes #{expected_panes}" do - get :show, { + get :show, params: { id: api_fixture('repositories')['foo']['uuid'] - }, session_for(user) + }, session: session_for(user) assert_response :success panes = css_select('[data-toggle=tab]').each do |pane| - pane_name = pane.attributes['href'] + pane_name = pane.attributes['href'].value assert_includes expected_panes, pane_name end end @@ -71,10 +75,10 @@ class RepositoriesControllerTest < ActionController::TestCase test "show tree to #{user}" do reset_api_fixtures_after_test false sha1, _, _ = stub_repo_content - get :show_tree, { + get :show_tree, params: { id: api_fixture('repositories')['foo']['uuid'], commit: sha1, - }, session_for(user) + }, session: session_for(user) assert_response :success assert_select 'tr td a', 'COPYING' assert_select 'tr td', '625 bytes' @@ -87,24 +91,24 @@ class RepositoriesControllerTest < ActionController::TestCase test "show commit to #{user}" do reset_api_fixtures_after_test false sha1, commit, _ = stub_repo_content - get :show_commit, { + get :show_commit, params: { id: api_fixture('repositories')['foo']['uuid'], commit: sha1, - }, session_for(user) + }, session: session_for(user) assert_response :success - assert_select 'pre', h(commit) + assert_select 'pre', commit end test "show blob to #{user}" do reset_api_fixtures_after_test false sha1, _, filedata = stub_repo_content filename: 'COPYING' - get :show_blob, { + get :show_blob, params: { id: api_fixture('repositories')['foo']['uuid'], commit: sha1, path: 'COPYING', - }, session_for(user) + }, session: session_for(user) assert_response :success - assert_select 'pre', h(filedata) + assert_select 'pre', filedata end end @@ -112,13 +116,29 @@ class RepositoriesControllerTest < ActionController::TestCase test "show tree with path '#{path}'" do reset_api_fixtures_after_test false sha1, _, _ = stub_repo_content filename: 'COPYING' - get :show_tree, { + get :show_tree, params: { id: api_fixture('repositories')['foo']['uuid'], commit: sha1, path: path, - }, session_for(:active) + }, session: session_for(:active) assert_response :success assert_select 'tr td', 'COPYING' end end + + test "get repositories lists linked as well as owned repositories" do + params = { + partial: :repositories_rows, + format: :json, + } + get :index, params: params, session: session_for(:active) + assert_response :success + repos = assigns(:objects) + assert repos + assert_not_empty repos, "my_repositories should not be empty" + repo_uuids = repos.map(&:uuid) + assert_includes repo_uuids, api_fixture('repositories')['repository2']['uuid'] # owned by active + assert_includes repo_uuids, api_fixture('repositories')['repository4']['uuid'] # shared with active + assert_includes repo_uuids, api_fixture('repositories')['arvados']['uuid'] # shared with all_users + end end