# frozen_string_literal: true

require 'fast_spec_helper'

require 'gitlab/danger/teammate'

describe Gitlab::Danger::Teammate do
  subject { described_class.new({ 'projects' => projects }) }
  let(:projects) { { project => capabilities } }
  let(:project) { double }

  describe 'multiple roles project project' do
    let(:capabilities) { ['reviewer backend', 'maintainer frontend', 'trainee_maintainer database'] }

    it '#reviewer? supports multiple roles per project' do
      expect(subject.reviewer?(project, :backend)).to be_truthy
    end

    it '#traintainer? supports multiple roles per project' do
      expect(subject.traintainer?(project, :database)).to be_truthy
    end

    it '#maintainer? supports multiple roles per project' do
      expect(subject.maintainer?(project, :frontend)).to be_truthy
    end
  end

  describe 'one role project project' do
    let(:capabilities) { 'reviewer backend' }

    it '#reviewer? supports one role per project' do
      expect(subject.reviewer?(project, :backend)).to be_truthy
    end

    it '#traintainer? supports one role per project' do
      expect(subject.traintainer?(project, :database)).to be_falsey
    end

    it '#maintainer? supports one role per project' do
      expect(subject.maintainer?(project, :frontend)).to be_falsey
    end
  end
end
