Sha256: ae2f3957f2d551d41eee54d7fb79aae5edf79f5fc8a141c1a77bf24ea1d2f13e

Contents?: true

Size: 1021 Bytes

Versions: 1

Compression:

Stored size: 1021 Bytes

Contents

# encoding: utf-8

require_relative '../spec_helper'

describe "HTTP" do
  subject { Riksteatern::HTTP }

  let(:uri) { URI.parse('http://example.local/') }

  describe "get" do
    it "returns the response body if the response code is 200" do
      mock = MiniTest::Mock.new.expect(:code, '200').
                                expect(:code, '200').
                                expect(:body, 'foobar')

      subject.stub(:make_request, mock) do
        subject.get(uri).must_equal 'foobar'
      end

      mock.verify
    end

    it "raises an exception if the response code is 401" do
      mock = MiniTest::Mock.new.expect(:code, '401')

      subject.stub(:make_request, mock) do
        ->{ subject.get(uri) }.must_raise Riksteatern::UnauthorizedUser
      end

      mock.verify
    end

    it "returns nil otherwise" do
      mock = MiniTest::Mock.new.expect(:code, '500').expect(:code, '500')

      subject.stub(:make_request, mock) { subject.get(uri).must_be_nil }

      mock.verify
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
riksteatern-0.0.1 spec/riksteatern/http_spec.rb