summaryrefslogtreecommitdiff
path: root/spec/controllers/import/github_controller_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/import/github_controller_spec.rb')
-rw-r--r--spec/controllers/import/github_controller_spec.rb42
1 files changed, 41 insertions, 1 deletions
diff --git a/spec/controllers/import/github_controller_spec.rb b/spec/controllers/import/github_controller_spec.rb
index fd380f9b763..ef66124bff1 100644
--- a/spec/controllers/import/github_controller_spec.rb
+++ b/spec/controllers/import/github_controller_spec.rb
@@ -82,11 +82,33 @@ RSpec.describe Import::GithubController do
expect(controller).to redirect_to(new_import_url)
expect(flash[:alert]).to eq('Access denied to your GitHub account.')
end
+
+ it "includes namespace_id from session if it is present" do
+ namespace_id = 1
+ session[:namespace_id] = 1
+
+ get :callback, params: { state: valid_auth_state }
+
+ expect(controller).to redirect_to(status_import_github_url(namespace_id: namespace_id))
+ end
end
end
describe "POST personal_access_token" do
it_behaves_like 'a GitHub-ish import controller: POST personal_access_token'
+
+ it 'passes namespace_id param as query param if it was present' do
+ namespace_id = 5
+ status_import_url = public_send("status_import_#{provider}_url", { namespace_id: namespace_id })
+
+ allow_next_instance_of(Gitlab::LegacyGithubImport::Client) do |client|
+ allow(client).to receive(:user).and_return(true)
+ end
+
+ post :personal_access_token, params: { personal_access_token: 'some-token', namespace_id: 5 }
+
+ expect(controller).to redirect_to(status_import_url)
+ end
end
describe "GET status" do
@@ -258,7 +280,9 @@ RSpec.describe Import::GithubController do
context 'when user input contains colons and spaces' do
before do
- allow(controller).to receive(:client_repos).and_return([])
+ allow_next_instance_of(Gitlab::GithubImport::Client) do |client|
+ allow(client).to receive(:search_repos_by_name).and_return(items: [])
+ end
end
it 'sanitizes user input' do
@@ -293,6 +317,22 @@ RSpec.describe Import::GithubController do
end
describe "GET realtime_changes" do
+ let(:user) { create(:user) }
+
it_behaves_like 'a GitHub-ish import controller: GET realtime_changes'
+
+ before do
+ assign_session_token(provider)
+ end
+
+ it 'includes stats in response' do
+ create(:project, import_type: provider, namespace: user.namespace, import_status: :finished, import_source: 'example/repo')
+
+ get :realtime_changes
+
+ expect(json_response[0]).to include('stats')
+ expect(json_response[0]['stats']).to include('fetched')
+ expect(json_response[0]['stats']).to include('imported')
+ end
end
end