spec/sitemap_spec.rb in maltese-0.9.6 vs spec/sitemap_spec.rb in maltese-0.9.7

- old
+ new

@@ -1,36 +1,36 @@ require 'spec_helper' describe Maltese::Sitemap, vcr: true do subject { Maltese::Sitemap.new(rack_env: "test") } - let(:doi) { "10.0166/fk2.stagefigshare.c.2794104" } + let(:doi) { "10.0253/tuprints-00003731" } context "get_query_url" do it "default" do - expect(subject.get_query_url).to eq("https://api.test.datacite.org/dois?fields%5Bdois%5D=doi%2Cupdated&page%5Bscroll%5D=7m&page%5Bsize%5D=1000") + expect(subject.get_query_url).to eq("https://api.test.datacite.org/dois?fields%5Bdois%5D=doi%2Cupdated&exclude-registration-agencies=true&page%5Bscroll%5D=7m&page%5Bsize%5D=1000") end it "with page[size] one" do - expect(subject.get_query_url(size: 1)).to eq("https://api.test.datacite.org/dois?fields%5Bdois%5D=doi%2Cupdated&page%5Bscroll%5D=7m&page%5Bsize%5D=1") + expect(subject.get_query_url(size: 1)).to eq("https://api.test.datacite.org/dois?fields%5Bdois%5D=doi%2Cupdated&exclude-registration-agencies=true&page%5Bscroll%5D=7m&page%5Bsize%5D=1") end it "with size" do - expect(subject.get_query_url(size: 250)).to eq("https://api.test.datacite.org/dois?fields%5Bdois%5D=doi%2Cupdated&page%5Bscroll%5D=7m&page%5Bsize%5D=250") + expect(subject.get_query_url(size: 250)).to eq("https://api.test.datacite.org/dois?fields%5Bdois%5D=doi%2Cupdated&exclude-registration-agencies=true&page%5Bscroll%5D=7m&page%5Bsize%5D=250") end end context "get_total" do it "with works" do - expect(subject.get_total).to eq(896469) + expect(subject.get_total).to eq(271418) end end context "queue_jobs" do it "should report if there are works returned by the Datacite REST API" do response = subject.queue_jobs - expect(response).to eq(896469) + expect(response).to eq(271420) end end context "process_data" do it "should handle timeout errors with the Datacite REST API" do @@ -46,17 +46,23 @@ end it "should retry 2 times for bad request errors with the Datacite REST API" do stub = stub_request(:get, subject.get_query_url).and_return({ status: [502] }, { status: [502] }, { status: [502] }) response = subject.process_data(total: 10, url: subject.get_query_url) - expect(response).to eq(0) + expect(response).to eq(1) end + + it "should handle internal server errors with the Datacite REST API" do + stub = stub_request(:get, subject.get_query_url).and_return({ status: [500] }, { status: [200] }) + response = subject.process_data(total: 10, url: subject.get_query_url) + expect(response).to eq(1) + end end context "get_data" do it "should report if there are works returned by the Datacite REST API" do response = subject.get_data(subject.get_query_url) - expect(response.body.dig("meta", "total")).to eq(896469) + expect(response.body.dig("meta", "total")).to eq(271419) expect(response.body.fetch("data", []).size).to eq(1000) doc = response.body.fetch("data", []).first expect(doc.dig("attributes", "doi")).to eq(doi) end