gitlab-org--gitlab-foss/spec/controllers/import/github_controller_spec.rb

66 lines
2.0 KiB
Ruby
Raw Normal View History

2014-12-31 13:07:48 +00:00
require 'spec_helper'
2015-02-03 01:01:07 +00:00
describe Import::GithubController do
2014-12-31 13:07:48 +00:00
let(:user) { create(:user, github_access_token: 'asd123') }
before do
sign_in(user)
end
describe "GET callback" do
it "updates access token" do
token = "asdasd12345"
allow_any_instance_of(Gitlab::GithubImport::Client).to receive(:get_token).and_return(token)
2015-01-11 04:04:06 +00:00
Gitlab.config.omniauth.providers << OpenStruct.new(app_id: "asd123", app_secret: "asd123", name: "github")
2014-12-31 13:07:48 +00:00
get :callback
expect(user.reload.github_access_token).to eq(token)
expect(controller).to redirect_to(status_import_github_url)
2014-12-31 13:07:48 +00:00
end
end
describe "GET status" do
before do
@repo = OpenStruct.new(login: 'vim', full_name: 'asd/vim')
end
it "assigns variables" do
@project = create(:project, import_type: 'github', creator_id: user.id)
2015-02-06 00:57:27 +00:00
controller.stub_chain(:client, :repos).and_return([@repo])
controller.stub_chain(:client, :orgs).and_return([])
2014-12-31 13:07:48 +00:00
get :status
expect(assigns(:already_added_projects)).to eq([@project])
expect(assigns(:repos)).to eq([@repo])
end
it "does not show already added project" do
@project = create(:project, import_type: 'github', creator_id: user.id, import_source: 'asd/vim')
2015-02-06 00:57:27 +00:00
controller.stub_chain(:client, :repos).and_return([@repo])
controller.stub_chain(:client, :orgs).and_return([])
2014-12-31 13:07:48 +00:00
get :status
expect(assigns(:already_added_projects)).to eq([@project])
expect(assigns(:repos)).to eq([])
end
end
describe "POST create" do
before do
@repo = OpenStruct.new(login: 'vim', full_name: 'asd/vim', owner: OpenStruct.new(login: "john"))
end
it "takes already existing namespace" do
namespace = create(:namespace, name: "john", owner: user)
expect(Gitlab::GithubImport::ProjectCreator).to receive(:new).with(@repo, namespace, user).
2014-12-31 13:07:48 +00:00
and_return(double(execute: true))
2015-02-06 00:57:27 +00:00
controller.stub_chain(:client, :repo).and_return(@repo)
2014-12-31 13:07:48 +00:00
post :create, format: :js
end
end
end