Skip to content

Instantly share code, notes, and snippets.

@rafaellima
Created June 19, 2018 09:48
Show Gist options
  • Save rafaellima/79ed1ed92261577b6e3873cb769b184a to your computer and use it in GitHub Desktop.
Save rafaellima/79ed1ed92261577b6e3873cb769b184a to your computer and use it in GitHub Desktop.
spec_helper vs rails_helper
# frozen_string_literal: true
require "spec_helper"
require_relative "../../../../lib/client.rb"
require_relative "../../../../lib/platform.rb"
class Settings
def self.m1; end
def self.m2; end
end
class Rails
def self.logger; end
def self.info; end
end
RSpec.describe Client do
let(:confs) do
{a: "false", v: "http://endpoint", c: "key", d: "token"}
end
before do
allow(Conf).to receive_message_chain(:m1, :m2).and_return(OpenStruct.new(confs))
end
describe "#request" do
let(:https) { instance_double(Net::HTTP).as_null_object }
let(:request) { instance_double(Net::HTTP::Get).as_null_object }
let(:response) { double("http response").as_null_object }
let(:parsed_response) { OpenStruct.new("success_code" => ["200"]) }
let(:url_shortner) { instance_double(Platform::UrlShortener).as_null_object }
before do
allow(Net::HTTP).to receive(:new).and_return(https)
allow(Net::HTTP::Get).to receive(:new).and_return(request)
allow(Platform).to receive(:new).and_return(url_shortner)
allow(https).to receive(:request).with(request).and_return(response)
allow(CGI).to receive(:parse).and_return(parsed_response)
allow(Rails).to receive_message_chain(:logger, :info)
subject.publish("99999", "content", "deliveryToken")
end
it { expect(https).to have_received(:request) }
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment