# frozen_string_literal: true

require 'spec_helper'

describe ReleaseTools::InternalRelease::IssueHelper do
  before do
    foo_class = Class.new do
      include ReleaseTools::InternalRelease::IssueHelper
    end

    stub_const('FooClass', foo_class)

    allow(ReleaseTools::GitlabClient).to receive(:client).and_return(internal_client)

    allow(internal_client).to receive(:issues).and_return([create(:issue)])
  end

  let(:foo_class) { FooClass.new }
  let(:internal_client) { instance_double(Gitlab::Client) }

  describe '#internal_release_task_issue' do
    it 'fetches the internal release task issue' do
      expect(internal_client)
        .to receive(:issues)
        .with(
          'gitlab-org/release/tasks',
          labels: 'internal releases',
          state: 'opened'
        )

      foo_class.internal_release_task_issue
    end
  end

  describe '#internal_release_dedicated_issue' do
    it 'fetches the internal release dedicated issue' do
      expect(internal_client)
        .to receive(:issues)
        .with(
          'gitlab-com/gl-infra/gitlab-dedicated/team',
          labels: 'internal releases',
          state: 'opened'
        )

      foo_class.internal_release_dedicated_issue
    end
  end
end
