otwarchive-symphonyarchive/spec/models/external_work_spec.rb

62 lines
1.8 KiB
Ruby
Raw Normal View History

2026-03-11 22:22:11 +00:00
require 'spec_helper'
describe ExternalWork do
# There is some crazy nonsense going on with these tests. They're both failing with the INCORRECT validation errors
# but when tested manually they fail correctly. Disabling them for now (06-03-2014) so this group of test fixes can
# go in. Scott S.
context "invalid url" do
INVALID_URLS.each do |url|
let(:invalid_url) {build(:external_work, url: url)}
xit "is not saved" do
expect(invalid_url.save).to be_falsey
expect(invalid_url.errors[:url]).not_to be_empty
expect(invalid_url.errors[:url]).to include("does not appear to be a valid URL.")
end
end
end
context "inactive url" do
INACTIVE_URLS.each do |url|
let(:inactive_url) {build(:external_work, url: url)}
it "is not saved" do
expect(inactive_url.save).to be_falsey
expect(inactive_url.errors[:url]).to include("could not be reached. If the URL is correct and the site is currently down, please try again later.")
end
end
end
context "for bypassed URLs" do
BYPASSED_URLS.each do |url|
context "for #{url}" do
let(:bypassed_url) { build(:external_work, url: url) }
before do
WebMock.stub_request(:any, bypassed_url.url).to_return(status: 403)
end
it "saves" do
expect(bypassed_url.save).to be_truthy
end
end
end
end
context "for valid URLs" do
[200, 301, 302, 307, 308].each do |status|
context "returning #{status}" do
let(:external_work) { build(:external_work) }
before do
WebMock.stub_request(:any, external_work.url).to_return(status: status)
end
it "saves" do
expect(external_work.save).to be_truthy
end
end
end
end
end