diff --git a/spec/contexts/issues/bulk_update_context_spec.rb b/spec/contexts/issues/bulk_update_context_spec.rb new file mode 100644 index 00000000000..0ea1799f5c9 --- /dev/null +++ b/spec/contexts/issues/bulk_update_context_spec.rb @@ -0,0 +1,77 @@ +require 'spec_helper' + +describe Issues::BulkUpdateContext do + + describe :close_issue do + + before do + @user = create :user + opts = { + name: "GitLab" + } + @project = create_project(@user, opts) + @issues = 5.times.collect do + create(:issue, project: @project) + end + @params = { + update: { + status: 'closed', + issues_ids: @issues.map(&:id) + } + } + + end + + it "close issues" do + Issues::BulkUpdateContext.new(@project, @user, @params).execute + @project.issues.opened.should be_empty + @project.issues.closed.should_not be_empty + end + + it "return success" do + result = Issues::BulkUpdateContext.new(@project, @user, @params).execute + result[:success].should be_true + result[:count].should == @issues.count + end + + end + + describe :reopen_issues do + + before do + @user = create :user + opts = { + name: "GitLab" + } + @project = create_project(@user, opts) + @issues = 5.times.collect do + create(:closed_issue, project: @project) + end + @params = { + update: { + status: 'reopen', + issues_ids: @issues.map(&:id) + } + } + + end + + it "reopen issues" do + Issues::BulkUpdateContext.new(@project, @user, @params).execute + @project.issues.closed.should be_empty + @project.issues.opened.should_not be_empty + end + + it "return success" do + result = Issues::BulkUpdateContext.new(@project, @user, @params).execute + result[:success].should be_true + result[:count].should == @issues.count + end + + end + + def create_project(user, opts) + Projects::CreateContext.new(user, opts).execute + end +end +