diff options
Diffstat (limited to 'spec/controllers/import/bitbucket_server_controller_spec.rb')
-rw-r--r-- | spec/controllers/import/bitbucket_server_controller_spec.rb | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/spec/controllers/import/bitbucket_server_controller_spec.rb b/spec/controllers/import/bitbucket_server_controller_spec.rb index 3a347368884..af471b478fa 100644 --- a/spec/controllers/import/bitbucket_server_controller_spec.rb +++ b/spec/controllers/import/bitbucket_server_controller_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Import::BitbucketServerController do +RSpec.describe Import::BitbucketServerController do let(:user) { create(:user) } let(:project_key) { 'test-project' } let(:repo_slug) { 'some-repo' } @@ -33,7 +33,7 @@ describe Import::BitbucketServerController do let(:project_name) { "my-project_123" } before do - allow(controller).to receive(:bitbucket_client).and_return(client) + allow(controller).to receive(:client).and_return(client) repo = double(name: project_name) allow(client).to receive(:repo).with(project_key, repo_slug).and_return(repo) assign_session_tokens @@ -139,12 +139,39 @@ describe Import::BitbucketServerController do let(:repos) { instance_double(BitbucketServer::Collection) } before do - allow(controller).to receive(:bitbucket_client).and_return(client) + allow(controller).to receive(:client).and_return(client) @repo = double(slug: 'vim', project_key: 'asd', full_name: 'asd/vim', "valid?" => true, project_name: 'asd', browse_url: 'http://test', name: 'vim') - @invalid_repo = double(slug: 'invalid', project_key: 'foobar', full_name: 'asd/foobar', "valid?" => false, browse_url: 'http://bad-repo') + @invalid_repo = double(slug: 'invalid', project_key: 'foobar', full_name: 'asd/foobar', "valid?" => false, browse_url: 'http://bad-repo', name: 'invalid') @created_repo = double(slug: 'created', project_key: 'existing', full_name: 'group/created', "valid?" => true, browse_url: 'http://existing') assign_session_tokens + stub_feature_flags(new_import_ui: false) + end + + context 'with new_import_ui feature flag enabled' do + before do + stub_feature_flags(new_import_ui: true) + end + + it 'returns invalid repos' do + allow(client).to receive(:repos).with(filter: nil, limit: 25, page_offset: 0).and_return([@repo, @invalid_repo]) + + get :status, format: :json + + expect(response).to have_gitlab_http_status(:ok) + expect(json_response['incompatible_repos'].length).to eq(1) + expect(json_response.dig("incompatible_repos", 0, "id")).to eq(@invalid_repo.full_name) + expect(json_response['provider_repos'].length).to eq(1) + expect(json_response.dig("provider_repos", 0, "id")).to eq(@repo.full_name) + end + end + + it_behaves_like 'import controller with new_import_ui feature flag' do + let(:repo) { @repo } + let(:repo_id) { @repo.full_name } + let(:import_source) { @repo.browse_url } + let(:provider_name) { 'bitbucket_server' } + let(:client_repos_field) { :repos } end it 'assigns repository categories' do |