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