diff options
Diffstat (limited to 'spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb')
-rw-r--r-- | spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb | 63 |
1 files changed, 26 insertions, 37 deletions
diff --git a/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb b/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb index 91121f3c3fc..2389489e867 100644 --- a/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb +++ b/spec/lib/gitlab/github_import/importer/issue_event_importer_spec.rb @@ -2,20 +2,19 @@ require 'spec_helper' -RSpec.describe Gitlab::GithubImport::Importer::IssueEventImporter, :clean_gitlab_redis_cache do +RSpec.describe Gitlab::GithubImport::Importer::IssueEventImporter, :clean_gitlab_redis_cache, + feature_category: :importers do let(:importer) { described_class.new(issue_event, project, client) } - let(:project) { create(:project) } - let(:client) { instance_double('Gitlab::GithubImport::Client') } - let(:user) { create(:user) } - let(:issue) { create(:issue, project: project) } + let(:project) { build(:project) } + let(:client) { instance_double(Gitlab::GithubImport::Client) } let(:issue_event) do Gitlab::GithubImport::Representation::IssueEvent.from_json_hash( 'id' => 6501124486, 'node_id' => 'CE_lADOHK9fA85If7x0zwAAAAGDf0mG', 'url' => 'https://api.github.com/repos/elhowm/test-import/issues/events/6501124486', - 'actor' => { 'id' => actor_id, 'login' => 'alice' }, + 'actor' => { 'id' => 1, 'login' => 'alice' }, 'event' => event_name, 'commit_id' => '570e7b2abdd848b95f2f578043fc23bd6f6fd24d', 'commit_url' => @@ -25,17 +24,13 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueEventImporter, :clean_gitlab ) end - let(:actor_id) { user.id } let(:event_name) { 'closed' } shared_examples 'triggers specific event importer' do |importer_class| it importer_class.name do - specific_importer = double(importer_class.name) # rubocop:disable RSpec/VerifiedDoubles - - expect(importer_class) - .to receive(:new).with(project, client) - .and_return(specific_importer) - expect(specific_importer).to receive(:execute).with(issue_event) + expect_next_instance_of(importer_class, project, client) do |importer| + expect(importer).to receive(:execute).with(issue_event) + end importer.execute end @@ -45,85 +40,79 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueEventImporter, :clean_gitlab context "when it's closed issue event" do let(:event_name) { 'closed' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::Closed + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Closed end context "when it's reopened issue event" do let(:event_name) { 'reopened' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::Reopened + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Reopened end context "when it's labeled issue event" do let(:event_name) { 'labeled' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedLabel + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedLabel end context "when it's unlabeled issue event" do let(:event_name) { 'unlabeled' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedLabel + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedLabel end context "when it's renamed issue event" do let(:event_name) { 'renamed' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::Renamed + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Renamed end context "when it's milestoned issue event" do let(:event_name) { 'milestoned' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedMilestone + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedMilestone end context "when it's demilestoned issue event" do let(:event_name) { 'demilestoned' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedMilestone + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedMilestone end context "when it's cross-referenced issue event" do let(:event_name) { 'cross-referenced' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::CrossReferenced + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::CrossReferenced end context "when it's assigned issue event" do let(:event_name) { 'assigned' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedAssignee + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedAssignee end context "when it's unassigned issue event" do let(:event_name) { 'unassigned' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedAssignee + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedAssignee end context "when it's review_requested issue event" do let(:event_name) { 'review_requested' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedReviewer + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedReviewer end context "when it's review_request_removed issue event" do let(:event_name) { 'review_request_removed' } - it_behaves_like 'triggers specific event importer', - Gitlab::GithubImport::Importer::Events::ChangedReviewer + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::ChangedReviewer + end + + context "when it's merged issue event" do + let(:event_name) { 'merged' } + + it_behaves_like 'triggers specific event importer', Gitlab::GithubImport::Importer::Events::Merged end context "when it's unknown issue event" do |