From 5cf1134d5e8d52b0622193408cfa22e582431f6c Mon Sep 17 00:00:00 2001 From: rhymes Date: Tue, 31 Dec 2019 14:46:49 +0100 Subject: [PATCH] Nokogiri::HTML should receive the body, not the response object (#5297) --- app/services/medium_article_retrieval_service.rb | 4 ++-- spec/services/medium_article_retrieval_service_spec.rb | 4 +--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/services/medium_article_retrieval_service.rb b/app/services/medium_article_retrieval_service.rb index 071baba13..0fbdd9d54 100644 --- a/app/services/medium_article_retrieval_service.rb +++ b/app/services/medium_article_retrieval_service.rb @@ -10,8 +10,8 @@ class MediumArticleRetrievalService end def call - html = HTTParty.get(url) - page = Nokogiri::HTML(html) + response = HTTParty.get(url) + page = Nokogiri::HTML(response.body) title = page.at("meta[name='title']")["content"] reading_time = page.at("meta[name='twitter:data1']")["value"] diff --git a/spec/services/medium_article_retrieval_service_spec.rb b/spec/services/medium_article_retrieval_service_spec.rb index 001e7f5e1..aeadeac64 100644 --- a/spec/services/medium_article_retrieval_service_spec.rb +++ b/spec/services/medium_article_retrieval_service_spec.rb @@ -13,13 +13,11 @@ RSpec.describe MediumArticleRetrievalService, type: :service, vcr: {} do } end - context "when valid medium url" do + context "when the medium url is valid" do let(:medium_url) { "https://medium.com/@edisonywh/my-ruby-journey-hooking-things-up-91d757e1c59c" } it "returns a valid response" do VCR.use_cassette("medium") do - html = HTTParty.get(medium_url) - stub_request(:get, medium_url).to_return(body: html.body, status: 200) expect(described_class.call(medium_url)).to include(expected_response) end end