RSpec.describe GitTrend do before do stub_request(:get, /.*/) .to_return(status: 200, headers: { content_type: 'text/html' }, body: load_http_stub('trending')) end describe '#get' do context 'without options' do it 'Scraper#get call without options' do expect_any_instance_of(Scraper).to receive(:get).with(no_args) GitTrend.get end end context "parameter is 'ruby'" do it "Scraper#get call with 'ruby'" do expect_any_instance_of(Scraper).to receive(:get).with('ruby') GitTrend.get('ruby') end end context 'parameter is :ruby' do it 'Scraper#get call with :ruby' do expect_any_instance_of(Scraper).to receive(:get).with(:ruby) GitTrend.get(:ruby) end end context 'parameter is since: :weekly' do it 'Scraper#get call with [nil, :weekly]' do expect_any_instance_of(Scraper).to receive(:get).with(nil, :weekly) GitTrend.get(since: :weekly) end end context 'parameter is since: :week' do it 'Scraper#get call with [nil, :week]' do expect_any_instance_of(Scraper).to receive(:get).with(nil, :week) GitTrend.get(since: :week) end end context 'parameter is since: :w' do it 'Scraper#get call with [nil, :w]' do expect_any_instance_of(Scraper).to receive(:get).with(nil, :w) GitTrend.get(since: :w) end end context "parameters are 'ruby', 'weekly'" do it "Scraper#get call with ['ruby', 'weekly']" do expect_any_instance_of(Scraper).to receive(:get).with('ruby', 'weekly') GitTrend.get('ruby', 'weekly') end end context 'parameters are :ruby, :weekly' do it 'Scraper#get call with [:ruby, :weekly]' do expect_any_instance_of(Scraper).to receive(:get).with(:ruby, :weekly) GitTrend.get(:ruby, :weekly) end end context 'parameters are language: :ruby, since: :weekly' do it 'Scraper#get call with [:ruby, :weekly]' do expect_any_instance_of(Scraper).to receive(:get).with(:ruby, :weekly) GitTrend.get(language: :ruby, since: :weekly) end end context 'when too many parameters' do it { expect { GitTrend.get('ruby', 'weekly', 'many_params') }.to raise_error(Exception) } end describe '#languages' do it 'Scraper#languages call' do expect_any_instance_of(Scraper).to receive(:languages).with(no_args) GitTrend.languages end end end end