Sha256: 708c0deb16d1f46ce8c3759749acd5ef7c5ce6673b9f06892d54312ce5ce68fc

Contents?: true

Size: 1.89 KB

Versions: 2

Compression:

Stored size: 1.89 KB

Contents

require File.expand_path("../spec_helper", __FILE__)

module Danger
  describe Danger::AssignStrategies::RandomStrategy do
    before do
      testing_env.each { |k,v| ENV[k] = "#{v}" }
      @dangerfile = testing_dangerfile

      @sam = Gitlab::User.new(1, 'Sam')
      @tom = Gitlab::User.new(2, 'Tom')
      @nic = Gitlab::User.new(3, 'Nic')
      @luke = Gitlab::User.new(4, 'Luke')

      @mock_client = double(Gitlab::Client)
      @author = @nic
      @members = [@author, @tom, @sam]
      allow(@mock_client).to receive(:fetch_author_for_mr).and_return(@author)
      allow(@mock_client).to receive(:fetch_users_for_group).with(2200).and_return(@members)

      @strategy = AssignStrategies::RandomStrategy.new(client: @mock_client, project: 10, mr: 110, group: 2200)
    end

    it "assign the right amount of reviewers" do
      allow(@mock_client).to receive(:fetch_mr_reviewers).with(10, 110).and_return([])
      expect(@mock_client).to receive(:assign_mr_to_users) do |project, mr, users|
        expect(project).to be == 10
        expect(mr).to be == 110
        expect(users).to contain_exactly(@tom, @sam)
      end

      @strategy.assign!(2)
    end

    it "doesn't assign author" do
      allow(@mock_client).to receive(:fetch_mr_reviewers).with(10, 110).and_return([])

      expect(@mock_client).to receive(:assign_mr_to_users) do |project, mr, users|
        expect(project).to be == 10
        expect(mr).to be == 110
        expect(users).to contain_exactly(@tom, @sam)
      end

      @strategy.assign!(3)
    end

    it "honours existing reviewers" do
      allow(@mock_client).to receive(:fetch_mr_reviewers).with(10, 110).and_return([@sam])
      expect(@mock_client).to receive(:assign_mr_to_users) do |project, mr, users|
        expect(project).to be == 10
        expect(mr).to be == 110
        expect(users).to contain_exactly(@tom, @sam)
      end

      @strategy.assign!(2)
    end


  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
danger-gitlab_reviewbot-1.0.2 spec/random_strategy_spec.rb
danger-gitlab_reviewbot-1.0.1 spec/random_strategy_spec.rb