Sha256: 5bb688ad7c5f79e96fe262f2c929d0fc7fca2a0ee4dcb87c84b4cbac1c10c5e1

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

require 'spec_helper'
require 'json'

describe Parsable::Remote do

  subject { described_class.new }

  describe '.method_missing', :vcr => true do
    context "url" do
      it "returns the body" do
        expect(subject.send("http://httpstat.us/200")).to eql "200 OK"
      end

      context "with query params" do
        it "uses them in the request" do
          query = {"args" => {"query1" => "q1", "query2" => "q2"}}
          expect(JSON.parse(subject.send("http://httpbin.org/get?query1=q1&query2=q2"))).to include(query)
        end
      end

      context "cant connect" do
        context "bad response code" do
          it "returns nil" do
            expect(subject.send("http://httpstat.us/500")).to be_nil
          end
        end

        context "bad dns" do
          it "returns nil" do
            expect(subject.send("http://blahblahblahblahblahdoesntexist.com")).to be_nil
          end
        end

        context "blackhole" do
          it "returns nil" do
            expect(subject.send("http://blackhole.webpagetest.org")).to be_nil
          end
        end
      end
    end

    context "not a url" do
      it "returns nil" do
        expect(subject.send("notaurl")).to be_nil
      end
    end
  end


end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
parsable-0.2.0 spec/remote_spec.rb