spec/cloudfront_client_spec.rb in configure-s3-website-1.7.3 vs spec/cloudfront_client_spec.rb in configure-s3-website-1.7.4
- old
+ new
@@ -6,12 +6,12 @@
describe ConfigureS3Website::CloudFrontClient do
context '#distribution_config_xml' do
describe 'letting the user to override the default values' do
let(:config_source) {
mock = double('config_source')
- mock.stub(:s3_bucket_name).and_return('test-bucket')
- mock.stub(:s3_endpoint).and_return(nil)
+ allow(mock).to receive(:s3_bucket_name).and_return('test-bucket')
+ allow(mock).to receive(:s3_endpoint).and_return(nil)
mock
}
let(:custom_settings) {
{ 'default_cache_behavior' => { 'min_TTL' => '987' } }
@@ -26,46 +26,63 @@
)
)
}
it 'allows the user to override default CloudFront settings' do
- REXML::XPath.first(
+ expect(REXML::XPath.first(
distribution_config_xml,
'/DistributionConfig/DefaultCacheBehavior/MinTTL'
- ).get_text.to_s.should eq('987')
+ ).get_text.to_s).to eq('987')
end
it 'retains the default values that are not overriden' do
- REXML::XPath.first(
+ expect(REXML::XPath.first(
distribution_config_xml,
'/DistributionConfig/DefaultCacheBehavior/ViewerProtocolPolicy'
- ).get_text.to_s.should eq('allow-all')
+ ).get_text.to_s).to eq('allow-all')
end
end
- describe 'inferring //Origins/Items/Origin/DomainName' do
- let(:config_source) {
- mock = double('config_source')
- mock.stub(:s3_bucket_name).and_return('test-bucket')
- mock.stub(:s3_endpoint).and_return('us-west-1')
- mock
- }
+ [
+ { :region => 'us-east-1', :website_endpoint => 's3-website-us-east-1.amazonaws.com' },
+ { :region => 'us-west-1', :website_endpoint => 's3-website-us-west-1.amazonaws.com' },
+ { :region => 'us-west-2', :website_endpoint => 's3-website-us-west-2.amazonaws.com' },
+ { :region => 'ap-south-1', :website_endpoint => 's3-website.ap-south-1.amazonaws.com' },
+ { :region => 'ap-northeast-2', :website_endpoint => 's3-website.ap-northeast-2.amazonaws.com' },
+ { :region => 'ap-southeast-1', :website_endpoint => 's3-website-ap-southeast-1.amazonaws.com' },
+ { :region => 'ap-southeast-2', :website_endpoint => 's3-website-ap-southeast-2.amazonaws.com' },
+ { :region => 'ap-northeast-1', :website_endpoint => 's3-website-ap-northeast-1.amazonaws.com' },
+ { :region => 'eu-central-1', :website_endpoint => 's3-website.eu-central-1.amazonaws.com' },
+ { :region => 'eu-west-1', :website_endpoint => 's3-website-eu-west-1.amazonaws.com' },
+ { :region => 'sa-east-1', :website_endpoint => 's3-website-sa-east-1.amazonaws.com' },
+ ].each { |conf|
+ region = conf[:region]
+ website_endpoint = conf[:website_endpoint]
+ describe "inferring //Origins/Items/Origin/DomainName (#{region})" do
+ let(:config_source) {
+ mock = double('config_source')
+ allow(mock).to receive(:s3_bucket_name).and_return('test-bucket')
+ allow(mock).to receive(:s3_endpoint).and_return(region)
+ mock
+ }
- let(:distribution_config_xml) {
- REXML::Document.new(
- ConfigureS3Website::CloudFrontClient.send(
- :distribution_config_xml,
- config_source,
- custom_distribution_config = {}
+ let(:distribution_config_xml) {
+ REXML::Document.new(
+ ConfigureS3Website::CloudFrontClient.send(
+ :distribution_config_xml,
+ config_source,
+ custom_distribution_config = {}
+ )
)
- )
- }
+ }
- it 'honors the endpoint of the S3 website' do
- REXML::XPath.first(
- distribution_config_xml,
- '/DistributionConfig/Origins/Items/Origin/DomainName'
- ).get_text.to_s.should eq('test-bucket.s3-website-us-west-1.amazonaws.com')
+ it "honors the endpoint of the S3 website (#{region})" do
+ expect(REXML::XPath.first(
+ distribution_config_xml,
+ '/DistributionConfig/Origins/Items/Origin/DomainName'
+ ).get_text.to_s).to eq("test-bucket.#{website_endpoint}")
+ end
end
- end
+ }
+
end
end