Skip to content

Commit

Permalink
[#7] Update service tests to call with keyword arguments
Browse files Browse the repository at this point in the history
  • Loading branch information
malparty committed Jun 30, 2021
1 parent 71f477c commit 9ca34f0
Showing 1 changed file with 14 additions and 14 deletions.
28 changes: 14 additions & 14 deletions spec/services/google/parser_service_spec.rb
Expand Up @@ -5,48 +5,48 @@
RSpec.describe Google::ParserService, type: :service do
context 'when parsing a page having 1 top ad' do
it 'counts exactly 1 top ad', vcr: 'google_search_top_ads_1' do
result = Google::ClientService.new('squarespace').call
result = Google::ClientService.new(keyword: 'squarespace').call

expect(described_class.new(result).ads_top_count).to eq(1)
expect(described_class.new(html_response: result).ads_top_count).to eq(1)
end
end

context 'when parsing a page having 3 top ads, 3 bottom ads and 14 non ad links' do
it 'counts exactly 3 top ads', vcr: 'google_search_top_ads_6' do
result = Google::ClientService.new('vpn').call
result = Google::ClientService.new(keyword: 'vpn').call

expect(described_class.new(result).ads_top_count).to eq(3)
expect(described_class.new(html_response: result).ads_top_count).to eq(3)
end

it 'counts exactly 6 ads in total', vcr: 'google_search_top_ads_6' do
result = Google::ClientService.new('vpn').call
result = Google::ClientService.new(keyword: 'vpn').call

expect(described_class.new(result).ads_page_count).to eq(6)
expect(described_class.new(html_response: result).ads_page_count).to eq(6)
end

it 'finds exactly the 3 top ads urls', vcr: 'google_search_top_ads_6' do
result = Google::ClientService.new('vpn').call
result = Google::ClientService.new(keyword: 'vpn').call

expect(described_class.new(result).ads_top_url).to contain_exactly('https://cloud.google.com/free', 'https://www.expressvpn.com/', 'https://www.top10vpn.com/best-vpn-for-vietnam/')
expect(described_class.new(html_response: result).ads_top_url).to contain_exactly('https://cloud.google.com/free', 'https://www.expressvpn.com/', 'https://www.top10vpn.com/best-vpn-for-vietnam/')
end

it 'counts exactly 14 non ad results', vcr: 'google_search_top_ads_6' do
result = Google::ClientService.new('vpn').call
result = Google::ClientService.new(keyword: 'vpn').call

expect(described_class.new(result).non_ads_result_count).to eq(14)
expect(described_class.new(html_response: result).non_ads_result_count).to eq(14)
end

it 'gets 14 results', vcr: 'google_search_top_ads_6' do
result = Google::ClientService.new('vpn').call
result = Google::ClientService.new(keyword: 'vpn').call

expect(described_class.new(result).non_ads_url.count).to eq(14)
expect(described_class.new(html_response: result).non_ads_url.count).to eq(14)
end

it 'gets exactly 113 links', vcr: 'google_search_top_ads_6' do
# Counted from cassette html raw code
result = Google::ClientService.new('vpn').call
result = Google::ClientService.new(keyword: 'vpn').call

expect(described_class.new(result).total_link_count).to eq(113)
expect(described_class.new(html_response: result).total_link_count).to eq(113)
end
end
end

0 comments on commit 9ca34f0

Please sign in to comment.