Improve testing setup

This commit is contained in:
Brandon Robins
2018-03-11 16:38:50 -05:00
parent 19290d3832
commit 2ce668b9ea
9 changed files with 163 additions and 76 deletions

View File

@@ -4,48 +4,57 @@ require 'rails_helper'
require 'support/request_helpers'
RSpec.describe 'OPTIONS', type: :request do
before(:context) do
Calligraphy::FileResource.setup
end
before(:each) do
allow(Calligraphy).to receive(:enable_digest_authentication)
.and_return(false)
skip_authentication
end
context 'when not using extended MKCOL support' do
before(:each) do
allow_any_instance_of(Calligraphy::FileResource).to receive(
:enable_extended_mkcol?
).and_return(false)
end
it 'advertises support for all 3 WebDAV classes' do
options '/webdav/special'
%w[1 2 3].each { |c| expect(response.headers['DAV']).to include(c) }
end
it 'does not advertise support for extended-mkcol' do
options '/webdav/special'
expect(response.headers['DAV']).to_not include('extended-mkcol')
end
after(:context) do
Calligraphy::FileResource.cleanup
end
context 'when using extended MKCOL support' do
before(:each) do
allow_any_instance_of(Calligraphy::FileResource).to receive(
:enable_extended_mkcol?
).and_return(true)
context "for #{Calligraphy::FileResource}" do
context 'when not using extended MKCOL support' do
before(:each) do
allow_any_instance_of(Calligraphy::FileResource).to receive(
:enable_extended_mkcol?
).and_return(false)
end
it 'advertises support for all 3 WebDAV classes' do
options '/webdav/special'
%w[1 2 3].each { |c| expect(response.headers['DAV']).to include(c) }
end
it 'does not advertise support for extended-mkcol' do
options '/webdav/special'
expect(response.headers['DAV']).to_not include('extended-mkcol')
end
end
it 'advertises support for all 3 WebDAV classes' do
options '/webdav/special'
context 'when using extended MKCOL support' do
before(:each) do
allow_any_instance_of(Calligraphy::FileResource).to receive(
:enable_extended_mkcol?
).and_return(true)
end
%w[1 2 3].each { |c| expect(response.headers['DAV']).to include(c) }
end
it 'advertises support for all 3 WebDAV classes' do
options '/webdav/special'
it 'advertises support for extended-mkcol' do
options '/webdav/special'
%w[1 2 3].each { |c| expect(response.headers['DAV']).to include(c) }
end
expect(response.headers['DAV']).to include('extended-mkcol')
it 'advertises support for extended-mkcol' do
options '/webdav/special'
expect(response.headers['DAV']).to include('extended-mkcol')
end
end
end
end