Sha256: 002df470b3beda9d8474e059c1efc81f65b9f4aa29058d2ff109cc25a2cb4315

Contents?: true

Size: 1.91 KB

Versions: 2

Compression:

Stored size: 1.91 KB

Contents

# frozen_string_literal: true

require File.expand_path('spec_helper', __dir__)

describe Danger::DangerLgtm do
  it 'should be a plugin' do
    expect(Danger::DangerLgtm.new(nil)).to be_a(Danger::Plugin)
  end

  describe '#check_lgtm' do
    shared_examples 'returns correctly message' do
      it { expect(markdowns.first.message).to match(/#{image_url}/) }
    end

    let(:lgtm) { dangerfile.lgtm }
    let(:dangerfile) { testing_dangerfile }

    let(:https_only) { false }
    let(:image_url) { nil }

    let(:connection_mock) { double('Connection', request: response) }

    subject(:markdowns) do
      dangerfile.status_report[:markdowns]
    end

    context 'with HTTP errors' do
      let(:message) { 'Hello World!' }
      let(:response) { failure_response_mock(message) }

      it 'handles error' do
        expect($stdout).to receive(:puts).with(message)

        allow(Net::HTTP).to receive(:start).and_return(connection_mock)
        lgtm.check_lgtm(https_image_only: https_only, image_url: image_url)

        expect(markdowns.first.message).to eq("<h1 align='center'>LGTM</h1>")
      end
    end

    context 'without HTTP errors' do
      before do
        allow(Net::HTTP).to receive(:start).and_return(connection_mock)
      end

      before do
        lgtm.check_lgtm(https_image_only: https_only, image_url: image_url)
      end

      context 'with passed image url' do
        let(:lgtm_image) { 'https://example.com/image1.jpg' }
        let(:image_url) { 'https://example.com/image2.jpg' }
        let(:response) { success_response_mock(lgtm_image) }

        it_behaves_like 'returns correctly message'
      end

      context 'without passed image url' do
        let(:lgtm_image) { 'https://example.com/image.jpg' }
        let(:image_url) { 'https://example.com/image.jpg' }
        let(:response) { success_response_mock(lgtm_image) }

        it_behaves_like 'returns correctly message'
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
danger-lgtm-1.1.1 spec/lgtm_spec.rb
danger-lgtm-1.1.0 spec/lgtm_spec.rb