Sha256: 7d296ca56c327caecf2ac00ef35be5805e9eef2e5995950b5ebb230fc2380ebb

Contents?: true

Size: 1.44 KB

Versions: 6

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true

describe Stenographer::Outputs::SlackOutput do
  let!(:output) { create(:output) }
  let!(:change) { create(:change) }
  let(:slack) { Stenographer::Outputs::SlackOutput.new(change: change, output: output) }

  # before :each do
  #   allow(HTTP).to receive(:post)
  #   allow(HTTP).to receive(:get)
  # end

  class SlackResponse
    attr_accessor :body
  end

  describe '#channels' do
    let(:channels_response) { File.read("#{Stenographer::Engine.root}/spec/fixtures/slack_channels_list.json") }

    before :each do
      response = SlackResponse.new
      response.body = channels_response
      allow(HTTP).to receive(:get).and_return(response)
    end

    it 'makes an http get request' do
      expect(HTTP).to receive(:get)
      slack.channels
    end

    it 'returns the channels' do
      expect(slack.channels.length).to eq(2)
    end
  end

  describe '#send' do
    let(:chat_post_message_response) { File.read("#{Stenographer::Engine.root}/spec/fixtures/slack_chat_post_message.json") }

    before :each do
      response = SlackResponse.new
      response.body = chat_post_message_response
      allow(HTTP).to receive_message_chain(:auth, :headers, :post).and_return(response)
    end

    it 'makes an http post request' do
      expect(HTTP).to receive_message_chain(:auth, :headers, :post)
      slack.send
    end

    it 'returns the sent messages' do
      expect(slack.send[:ok]).to be_truthy
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
stenographer-rails-0.6.5 spec/lib/stenographer/outputs/slack_output_spec.rb
stenographer-rails-0.6.4 spec/lib/stenographer/outputs/slack_output_spec.rb
stenographer-rails-0.6.3 spec/lib/stenographer/outputs/slack_output_spec.rb
stenographer-rails-0.6.2 spec/lib/stenographer/outputs/slack_output_spec.rb
stenographer-rails-0.6.1 spec/lib/stenographer/outputs/slack_output_spec.rb
stenographer-rails-0.6.0 spec/lib/stenographer/outputs/slack_output_spec.rb