# frozen_string_literal: true
require_relative 'spec_helper'
module Aws
module Route53
describe Client do
let(:credentials) { Credentials.new('akid', 'secret') }
let(:client) {
Client.new(
region: 'us-west-2',
credentials: credentials,
retry_limit: 0
)
}
describe '#list_resource_record_sets' do
it 'removes the prefix from the :hosted_zone_id' do
client.handle(step: :send) do |context|
context.http_response.status_code = 200
Seahorse::Client::Response.new(context: context)
end
resp = client.list_resource_record_sets(hosted_zone_id: '/hostedzone/zoneid')
expect(resp.context.http_request.endpoint.path).to match(
%r{^/\d{4}-\d{2}-\d{2}/hostedzone/zoneid/rrset$}
)
end
end
describe '#delete_hosted_zone' do
it 'removes the prefix from the :id' do
client.handle(step: :send) do |context|
context.http_response.status_code = 200
Seahorse::Client::Response.new(context: context)
end
resp = client.delete_hosted_zone(id: '/hostedzone/zoneid')
expect(resp.context.http_request.endpoint.path).to match(
%r{^/\d{4}-\d{2}-\d{2}/hostedzone/zoneid$}
)
end
end
describe '#change_resource_record_sets' do
it 'removes prefixes from the nested targets' do
client.handle(step: :send) do |context|
context.http_response.status_code = 200
Seahorse::Client::Response.new(context: context)
end
params = {
hosted_zone_id: '/hostedzone/zoneid',
change_batch: {
changes: [
{
action: 'action',
resource_record_set: {
name: 'name',
type: 'type',
alias_target: {
dns_name: 'dns-name',
evaluate_target_health: false,
hosted_zone_id: '/hostedzone/target'
}
}
}
]
}
}
resp = client.change_resource_record_sets(params)
expect(resp.context.http_request.endpoint.path).to match(
%r{^/\d{4}-\d{2}-\d{2}/hostedzone/zoneid/rrset/$}
)
expect(resp.context.http_request.body_contents).to match(
'target'
)
end
it 'removes prefixes from the nested targets when params is typeof ChangeResourceRecordSetsRequest' do
client.handle(step: :send) do |context|
context.http_response.status_code = 200
Seahorse::Client::Response.new(context: context)
end
params = Aws::Route53::Types::ChangeResourceRecordSetsRequest.new(
hosted_zone_id: '/hostedzone/zoneid',
change_batch: {
changes: [
{
action: 'action',
resource_record_set: {
name: 'name',
type: 'type',
alias_target: {
dns_name: 'dns-name',
evaluate_target_health: false,
hosted_zone_id: '/hostedzone/target'
}
}
}
]
}
)
resp = client.change_resource_record_sets(params)
expect(resp.context.http_request.endpoint.path).to match(
%r{^/\d{4}-\d{2}-\d{2}/hostedzone/zoneid/rrset/$}
)
expect(resp.context.http_request.body_contents).to match(
'target'
)
end
end
describe '#get_traffic_policy' do
it 'supports integer versions' do
client = Client.new(stub_responses:true)
resp = client.get_traffic_policy(id: 'id', version: 1)
expect(resp.context.http_request.endpoint.to_s).to eq('https://route53.amazonaws.com/2013-04-01/trafficpolicy/id/1')
end
end
end
end
end