dnsimple 3.0.0.pre.beta2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +13 -0
- data/.rubocop_dnsimple.yml +216 -0
- data/.rubocop_todo.yml +14 -0
- data/CHANGELOG.md +16 -1
- data/Gemfile +1 -0
- data/Rakefile +8 -3
- data/lib/dnsimple/client.rb +9 -12
- data/lib/dnsimple/client/clients.rb +36 -2
- data/lib/dnsimple/client/contacts.rb +6 -6
- data/lib/dnsimple/client/domains.rb +5 -5
- data/lib/dnsimple/client/identity.rb +2 -2
- data/lib/dnsimple/client/oauth.rb +2 -2
- data/lib/dnsimple/client/registrar.rb +1 -1
- data/lib/dnsimple/client/registrar_auto_renewal.rb +2 -2
- data/lib/dnsimple/client/registrar_delegation.rb +49 -0
- data/lib/dnsimple/client/registrar_whois_privacy.rb +1 -1
- data/lib/dnsimple/client/services.rb +68 -0
- data/lib/dnsimple/client/templates.rb +139 -0
- data/lib/dnsimple/client/tlds.rb +3 -3
- data/lib/dnsimple/client/webhooks.rb +4 -4
- data/lib/dnsimple/client/zones.rb +2 -2
- data/lib/dnsimple/client/zones_records.rb +1 -1
- data/lib/dnsimple/default.rb +2 -2
- data/lib/dnsimple/error.rb +14 -1
- data/lib/dnsimple/struct.rb +3 -1
- data/lib/dnsimple/struct/contact.rb +2 -2
- data/lib/dnsimple/struct/extended_attribute.rb +5 -1
- data/lib/dnsimple/struct/service.rb +64 -0
- data/lib/dnsimple/struct/template.rb +22 -0
- data/lib/dnsimple/struct/tld.rb +1 -1
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/client_service_spec.rb +6 -6
- data/spec/dnsimple/client/contacts_spec.rb +30 -30
- data/spec/dnsimple/client/domains_email_forwards_spec.rb +25 -25
- data/spec/dnsimple/client/domains_spec.rb +27 -27
- data/spec/dnsimple/client/identity_spec.rb +8 -8
- data/spec/dnsimple/client/oauth_spec.rb +9 -9
- data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +13 -13
- data/spec/dnsimple/client/registrar_delegation_spec.rb +55 -0
- data/spec/dnsimple/client/registrar_spec.rb +29 -29
- data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +16 -16
- data/spec/dnsimple/client/services_spec.rb +78 -0
- data/spec/dnsimple/client/templates_spec.rb +163 -0
- data/spec/dnsimple/client/tlds_spec.rb +22 -23
- data/spec/dnsimple/client/webhooks_spec.rb +22 -22
- data/spec/dnsimple/client/zones_records_spec.rb +40 -40
- data/spec/dnsimple/client/zones_spec.rb +12 -12
- data/spec/dnsimple/client_spec.rb +52 -44
- data/spec/dnsimple/extra_spec.rb +3 -3
- data/spec/fixtures.http/changeDomainDelegation/success.http +17 -0
- data/spec/fixtures.http/createTemplate/created.http +17 -0
- data/spec/fixtures.http/deleteTemplate/success.http +13 -0
- data/spec/fixtures.http/getDomainDelegation/success-empty.http +17 -0
- data/spec/fixtures.http/getDomainDelegation/success.http +17 -0
- data/spec/fixtures.http/getService/success.http +17 -0
- data/spec/fixtures.http/getTemplate/success.http +17 -0
- data/spec/fixtures.http/listServices/success.http +17 -0
- data/spec/fixtures.http/listTemplates/success.http +17 -0
- data/spec/fixtures.http/method-not-allowed.http +11 -0
- data/spec/fixtures.http/updateTemplate/success.http +17 -0
- metadata +41 -5
@@ -23,8 +23,8 @@ module Dnsimple
|
|
23
23
|
|
24
24
|
Dnsimple::PaginatedResponse.new(response, response["data"].map { |r| Struct::Zone.new(r) })
|
25
25
|
end
|
26
|
-
alias
|
27
|
-
alias
|
26
|
+
alias list zones
|
27
|
+
alias list_zones zones
|
28
28
|
|
29
29
|
# Lists ALL the zones in the account.
|
30
30
|
#
|
data/lib/dnsimple/default.rb
CHANGED
@@ -7,7 +7,7 @@ module Dnsimple
|
|
7
7
|
BASE_URL = "https://api.dnsimple.com/".freeze
|
8
8
|
|
9
9
|
# Default User Agent header
|
10
|
-
USER_AGENT
|
10
|
+
USER_AGENT = "dnsimple-ruby/#{VERSION}".freeze
|
11
11
|
|
12
12
|
class << self
|
13
13
|
|
@@ -28,7 +28,7 @@ module Dnsimple
|
|
28
28
|
# Configuration options
|
29
29
|
# @return [Hash]
|
30
30
|
def options
|
31
|
-
Hash[keys.map { |key| [key, send(key)]}]
|
31
|
+
Hash[keys.map { |key| [key, send(key)] }]
|
32
32
|
end
|
33
33
|
|
34
34
|
# Default API endpoint from ENV or {BASE_URL}
|
data/lib/dnsimple/error.rb
CHANGED
@@ -9,8 +9,21 @@ module Dnsimple
|
|
9
9
|
|
10
10
|
def initialize(http_response)
|
11
11
|
@http_response = http_response
|
12
|
-
super(http_response
|
12
|
+
super(message_from(http_response))
|
13
13
|
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def message_from(http_response)
|
18
|
+
content_type = http_response.headers["Content-Type"]
|
19
|
+
if content_type && content_type.start_with?("application/json")
|
20
|
+
http_response.parsed_response["message"]
|
21
|
+
else
|
22
|
+
net_http_response = http_response.response
|
23
|
+
"#{net_http_response.code} #{net_http_response.message}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
14
27
|
end
|
15
28
|
|
16
29
|
class NotFoundError < RequestError
|
data/lib/dnsimple/struct.rb
CHANGED
@@ -5,7 +5,7 @@ module Dnsimple
|
|
5
5
|
def initialize(attributes = {})
|
6
6
|
attributes.each do |key, value|
|
7
7
|
m = "#{key}=".to_sym
|
8
|
-
|
8
|
+
send(m, value) if respond_to?(m)
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -21,6 +21,8 @@ require_relative 'struct/email_forward'
|
|
21
21
|
require_relative 'struct/extended_attribute'
|
22
22
|
require_relative 'struct/oauth_token'
|
23
23
|
require_relative 'struct/record'
|
24
|
+
require_relative 'struct/service'
|
25
|
+
require_relative 'struct/template'
|
24
26
|
require_relative 'struct/tld'
|
25
27
|
require_relative 'struct/user'
|
26
28
|
require_relative 'struct/whois_privacy'
|
@@ -56,8 +56,8 @@ module Dnsimple
|
|
56
56
|
# @return [String] When the contact was last updated in DNSimple.
|
57
57
|
attr_accessor :updated_at
|
58
58
|
|
59
|
-
alias
|
60
|
-
alias
|
59
|
+
alias email_address email
|
60
|
+
alias email_address= email=
|
61
61
|
end
|
62
62
|
|
63
63
|
end
|
@@ -23,7 +23,11 @@ module Dnsimple
|
|
23
23
|
# Boolean indicating if the extended attribute is required
|
24
24
|
attr_accessor :required
|
25
25
|
|
26
|
-
|
26
|
+
# @return [Array<Options>] The array of options with possible values for the extended attribute
|
27
|
+
attr_accessor :options
|
28
|
+
|
29
|
+
def initialize(*)
|
30
|
+
super
|
27
31
|
@options ||= []
|
28
32
|
end
|
29
33
|
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
module Struct
|
3
|
+
|
4
|
+
class Service < Base
|
5
|
+
|
6
|
+
class Setting < Base
|
7
|
+
# @return [String] The setting name.
|
8
|
+
attr_accessor :name
|
9
|
+
|
10
|
+
# @return [String] The setting label.
|
11
|
+
attr_accessor :label
|
12
|
+
|
13
|
+
# @return [String] A suffix to be appended to the setting value.
|
14
|
+
attr_accessor :append
|
15
|
+
|
16
|
+
# @return [String] The setting description.
|
17
|
+
attr_accessor :description
|
18
|
+
|
19
|
+
# @return [String] An example of the setting value.
|
20
|
+
attr_accessor :example
|
21
|
+
|
22
|
+
# @return [Boolean] Whether the setting requires a password.
|
23
|
+
attr_accessor :password
|
24
|
+
end
|
25
|
+
|
26
|
+
# @return [Fixnum] The service ID in DNSimple.
|
27
|
+
attr_accessor :id
|
28
|
+
|
29
|
+
# @return [String] The service name.
|
30
|
+
attr_accessor :name
|
31
|
+
|
32
|
+
# @return [String] A short name for the service.
|
33
|
+
attr_accessor :short_name
|
34
|
+
|
35
|
+
# @return [String] The service description.
|
36
|
+
attr_accessor :description
|
37
|
+
|
38
|
+
# @return [String] The service setup description.
|
39
|
+
attr_accessor :setup_description
|
40
|
+
|
41
|
+
# @return [Boolean] Whether the service requires extra setup.
|
42
|
+
attr_accessor :requires_setup
|
43
|
+
|
44
|
+
# @return [String] The default subdomain where the service will be applied.
|
45
|
+
attr_accessor :default_subdomain
|
46
|
+
|
47
|
+
# @return [Array<Settings>] The array of settings to setup this service, if setup is required.
|
48
|
+
attr_accessor :settings
|
49
|
+
|
50
|
+
def initialize(*)
|
51
|
+
super
|
52
|
+
@settings ||= []
|
53
|
+
end
|
54
|
+
|
55
|
+
def settings=(settings)
|
56
|
+
@settings = settings.map do |setting|
|
57
|
+
Setting.new(setting)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
module Struct
|
3
|
+
|
4
|
+
class Template < Base
|
5
|
+
# @return [Fixnum] The template ID in DNSimple.
|
6
|
+
attr_accessor :id
|
7
|
+
|
8
|
+
# @return [Fixnum] The associated account ID.
|
9
|
+
attr_accessor :account_id
|
10
|
+
|
11
|
+
# @return [String] The template name.
|
12
|
+
attr_accessor :name
|
13
|
+
|
14
|
+
# @return [String] The short name for the template.
|
15
|
+
attr_accessor :short_name
|
16
|
+
|
17
|
+
# @return [String] The template description.
|
18
|
+
attr_accessor :description
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/lib/dnsimple/struct/tld.rb
CHANGED
data/lib/dnsimple/version.rb
CHANGED
@@ -19,12 +19,12 @@ describe Dnsimple::Client::ClientService do
|
|
19
19
|
let(:account_id) { 1010 }
|
20
20
|
|
21
21
|
before do
|
22
|
-
stub_request(:get, %r
|
23
|
-
|
24
|
-
stub_request(:get, %r
|
25
|
-
|
26
|
-
stub_request(:get, %r
|
27
|
-
|
22
|
+
stub_request(:get, %r{/v2/#{account_id}/list\?page=1&per_page=100}).
|
23
|
+
to_return(read_http_fixture("pages-1of3.http"))
|
24
|
+
stub_request(:get, %r{/v2/#{account_id}/list\?page=2&per_page=100}).
|
25
|
+
to_return(read_http_fixture("pages-2of3.http"))
|
26
|
+
stub_request(:get, %r{/v2/#{account_id}/list\?page=3&per_page=100}).
|
27
|
+
to_return(read_http_fixture("pages-3of3.http"))
|
28
28
|
end
|
29
29
|
|
30
30
|
it "loops all the pages" do
|
@@ -9,15 +9,15 @@ describe Dnsimple::Client, ".contacts" do
|
|
9
9
|
let(:account_id) { 1010 }
|
10
10
|
|
11
11
|
before do
|
12
|
-
stub_request(:get, %r
|
13
|
-
|
12
|
+
stub_request(:get, %r{/v2/#{account_id}/contacts}).
|
13
|
+
to_return(read_http_fixture("listContacts/success.http"))
|
14
14
|
end
|
15
15
|
|
16
16
|
it "builds the correct request" do
|
17
17
|
subject.contacts(account_id)
|
18
18
|
|
19
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/contacts")
|
20
|
-
|
19
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/contacts").
|
20
|
+
with(headers: { 'Accept' => 'application/json' })
|
21
21
|
end
|
22
22
|
|
23
23
|
it "supports pagination" do
|
@@ -60,8 +60,8 @@ describe Dnsimple::Client, ".contacts" do
|
|
60
60
|
let(:account_id) { 1010 }
|
61
61
|
|
62
62
|
it "delegates to client.paginate" do
|
63
|
-
expect(subject).to receive(:paginate).with(:contacts, account_id,
|
64
|
-
subject.all_contacts(account_id,
|
63
|
+
expect(subject).to receive(:paginate).with(:contacts, account_id, foo: "bar")
|
64
|
+
subject.all_contacts(account_id, foo: "bar")
|
65
65
|
end
|
66
66
|
end
|
67
67
|
|
@@ -69,8 +69,8 @@ describe Dnsimple::Client, ".contacts" do
|
|
69
69
|
let(:account_id) { 1010 }
|
70
70
|
|
71
71
|
before do
|
72
|
-
stub_request(:post, %r
|
73
|
-
|
72
|
+
stub_request(:post, %r{/v2/#{account_id}/contacts$}).
|
73
|
+
to_return(read_http_fixture("createContact/created.http"))
|
74
74
|
end
|
75
75
|
|
76
76
|
let(:attributes) { { first_name: "Simone", last_name: "Carletti", address1: "Italian Street", city: "Rome", state_province: "RM", postal_code: "00171", country: "IT", email_address: "example@example.com", phone: "+393391234567" } }
|
@@ -78,9 +78,9 @@ describe Dnsimple::Client, ".contacts" do
|
|
78
78
|
it "builds the correct request" do
|
79
79
|
subject.create_contact(account_id, attributes)
|
80
80
|
|
81
|
-
expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/contacts")
|
82
|
-
|
83
|
-
|
81
|
+
expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/contacts").
|
82
|
+
with(body: attributes).
|
83
|
+
with(headers: { 'Accept' => 'application/json' })
|
84
84
|
end
|
85
85
|
|
86
86
|
it "returns the contact" do
|
@@ -97,15 +97,15 @@ describe Dnsimple::Client, ".contacts" do
|
|
97
97
|
let(:account_id) { 1010 }
|
98
98
|
|
99
99
|
before do
|
100
|
-
stub_request(:get, %r
|
101
|
-
|
100
|
+
stub_request(:get, %r{/v2/#{account_id}/contacts/.+$}).
|
101
|
+
to_return(read_http_fixture("getContact/success.http"))
|
102
102
|
end
|
103
103
|
|
104
104
|
it "builds the correct request" do
|
105
105
|
subject.contact(account_id, contact = 1)
|
106
106
|
|
107
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/contacts/#{contact}")
|
108
|
-
|
107
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/contacts/#{contact}").
|
108
|
+
with(headers: { 'Accept' => 'application/json' })
|
109
109
|
end
|
110
110
|
|
111
111
|
it "returns the contact" do
|
@@ -122,8 +122,8 @@ describe Dnsimple::Client, ".contacts" do
|
|
122
122
|
|
123
123
|
context "when the contact does not exist" do
|
124
124
|
it "raises NotFoundError" do
|
125
|
-
stub_request(:get, %r
|
126
|
-
|
125
|
+
stub_request(:get, %r{/v2}).
|
126
|
+
to_return(read_http_fixture("notfound-contact.http"))
|
127
127
|
|
128
128
|
expect {
|
129
129
|
subject.contact(account_id, 0)
|
@@ -136,8 +136,8 @@ describe Dnsimple::Client, ".contacts" do
|
|
136
136
|
let(:account_id) { 1010 }
|
137
137
|
|
138
138
|
before do
|
139
|
-
stub_request(:patch, %r
|
140
|
-
|
139
|
+
stub_request(:patch, %r{/v2/#{account_id}/contacts/.+$}).
|
140
|
+
to_return(read_http_fixture("updateContact/success.http"))
|
141
141
|
end
|
142
142
|
|
143
143
|
let(:attributes) { { first_name: "Updated" } }
|
@@ -145,9 +145,9 @@ describe Dnsimple::Client, ".contacts" do
|
|
145
145
|
it "builds the correct request" do
|
146
146
|
subject.update_contact(account_id, contact_id = 1, attributes)
|
147
147
|
|
148
|
-
expect(WebMock).to have_requested(:patch, "https://api.dnsimple.test/v2/#{account_id}/contacts/#{contact_id}")
|
149
|
-
|
150
|
-
|
148
|
+
expect(WebMock).to have_requested(:patch, "https://api.dnsimple.test/v2/#{account_id}/contacts/#{contact_id}").
|
149
|
+
with(body: attributes).
|
150
|
+
with(headers: { 'Accept' => 'application/json' })
|
151
151
|
end
|
152
152
|
|
153
153
|
it "returns the contact" do
|
@@ -161,8 +161,8 @@ describe Dnsimple::Client, ".contacts" do
|
|
161
161
|
|
162
162
|
context "when the contact does not exist" do
|
163
163
|
it "raises NotFoundError" do
|
164
|
-
stub_request(:patch, %r
|
165
|
-
|
164
|
+
stub_request(:patch, %r{/v2}).
|
165
|
+
to_return(read_http_fixture("notfound-contact.http"))
|
166
166
|
|
167
167
|
expect {
|
168
168
|
subject.update_contact(account_id, 0, {})
|
@@ -175,15 +175,15 @@ describe Dnsimple::Client, ".contacts" do
|
|
175
175
|
let(:account_id) { 1010 }
|
176
176
|
|
177
177
|
before do
|
178
|
-
stub_request(:delete, %r
|
179
|
-
|
178
|
+
stub_request(:delete, %r{/v2/#{account_id}/contacts/.+$}).
|
179
|
+
to_return(read_http_fixture("deleteContact/success.http"))
|
180
180
|
end
|
181
181
|
|
182
182
|
it "builds the correct request" do
|
183
183
|
subject.delete_contact(account_id, domain = "example.com")
|
184
184
|
|
185
|
-
expect(WebMock).to have_requested(:delete, "https://api.dnsimple.test/v2/#{account_id}/contacts/#{domain}")
|
186
|
-
|
185
|
+
expect(WebMock).to have_requested(:delete, "https://api.dnsimple.test/v2/#{account_id}/contacts/#{domain}").
|
186
|
+
with(headers: { 'Accept' => 'application/json' })
|
187
187
|
end
|
188
188
|
|
189
189
|
it "returns nothing" do
|
@@ -196,8 +196,8 @@ describe Dnsimple::Client, ".contacts" do
|
|
196
196
|
|
197
197
|
context "when the contact does not exist" do
|
198
198
|
it "raises NotFoundError" do
|
199
|
-
stub_request(:delete, %r
|
200
|
-
|
199
|
+
stub_request(:delete, %r{/v2}).
|
200
|
+
to_return(read_http_fixture("notfound-contact.http"))
|
201
201
|
|
202
202
|
expect {
|
203
203
|
subject.delete_contact(account_id, 0)
|
@@ -10,15 +10,15 @@ describe Dnsimple::Client, ".domains" do
|
|
10
10
|
let(:domain_id) { "example.com" }
|
11
11
|
|
12
12
|
before do
|
13
|
-
stub_request(:get, %r
|
14
|
-
|
13
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/email_forwards}).
|
14
|
+
to_return(read_http_fixture("listEmailForwards/success.http"))
|
15
15
|
end
|
16
16
|
|
17
17
|
it "builds the correct request" do
|
18
18
|
subject.email_forwards(account_id, domain_id)
|
19
19
|
|
20
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards")
|
21
|
-
|
20
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards").
|
21
|
+
with(headers: { 'Accept' => 'application/json' })
|
22
22
|
end
|
23
23
|
|
24
24
|
it "supports pagination" do
|
@@ -58,8 +58,8 @@ describe Dnsimple::Client, ".domains" do
|
|
58
58
|
|
59
59
|
context "when the domain does not exist" do
|
60
60
|
it "raises NotFoundError" do
|
61
|
-
stub_request(:get, %r
|
62
|
-
|
61
|
+
stub_request(:get, %r{/v2}).
|
62
|
+
to_return(read_http_fixture("notfound-domain.http"))
|
63
63
|
|
64
64
|
expect {
|
65
65
|
subject.email_forwards(account_id, domain_id)
|
@@ -73,8 +73,8 @@ describe Dnsimple::Client, ".domains" do
|
|
73
73
|
let(:domain_id) { "example.com" }
|
74
74
|
|
75
75
|
it "delegates to client.paginate" do
|
76
|
-
expect(subject).to receive(:paginate).with(:email_forwards, account_id, domain_id,
|
77
|
-
subject.all_email_forwards(account_id, domain_id,
|
76
|
+
expect(subject).to receive(:paginate).with(:email_forwards, account_id, domain_id, foo: "bar")
|
77
|
+
subject.all_email_forwards(account_id, domain_id, foo: "bar")
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -83,8 +83,8 @@ describe Dnsimple::Client, ".domains" do
|
|
83
83
|
let(:domain_id) { "example.com" }
|
84
84
|
|
85
85
|
before do
|
86
|
-
stub_request(:post, %r
|
87
|
-
|
86
|
+
stub_request(:post, %r{/v2/#{account_id}/domains/#{domain_id}/email_forwards$}).
|
87
|
+
to_return(read_http_fixture("createEmailForward/created.http"))
|
88
88
|
end
|
89
89
|
|
90
90
|
let(:attributes) { { from: "jim", to: "jim@another.com" } }
|
@@ -92,9 +92,9 @@ describe Dnsimple::Client, ".domains" do
|
|
92
92
|
it "builds the correct request" do
|
93
93
|
subject.create_email_forward(account_id, domain_id, attributes)
|
94
94
|
|
95
|
-
expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards")
|
96
|
-
|
97
|
-
|
95
|
+
expect(WebMock).to have_requested(:post, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards").
|
96
|
+
with(body: attributes).
|
97
|
+
with(headers: { 'Accept' => 'application/json' })
|
98
98
|
end
|
99
99
|
|
100
100
|
it "returns the email forward" do
|
@@ -113,15 +113,15 @@ describe Dnsimple::Client, ".domains" do
|
|
113
113
|
let(:email_forward_id) { 17706 }
|
114
114
|
|
115
115
|
before do
|
116
|
-
stub_request(:get, %r
|
117
|
-
|
116
|
+
stub_request(:get, %r{/v2/#{account_id}/domains/#{domain_id}/email_forwards.+$}).
|
117
|
+
to_return(read_http_fixture("getEmailForward/success.http"))
|
118
118
|
end
|
119
119
|
|
120
120
|
it "builds the correct request" do
|
121
121
|
subject.email_forward(account_id, domain_id, email_forward_id)
|
122
122
|
|
123
|
-
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards/#{email_forward_id}")
|
124
|
-
|
123
|
+
expect(WebMock).to have_requested(:get, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards/#{email_forward_id}").
|
124
|
+
with(headers: { 'Accept' => 'application/json' })
|
125
125
|
end
|
126
126
|
|
127
127
|
it "returns the email forward" do
|
@@ -140,8 +140,8 @@ describe Dnsimple::Client, ".domains" do
|
|
140
140
|
|
141
141
|
context "when the email forward does not exist" do
|
142
142
|
it "raises NotFoundError" do
|
143
|
-
stub_request(:get, %r
|
144
|
-
|
143
|
+
stub_request(:get, %r{/v2}).
|
144
|
+
to_return(read_http_fixture("notfound-emailforward.http"))
|
145
145
|
|
146
146
|
expect {
|
147
147
|
subject.email_forward(account_id, domain_id, email_forward_id)
|
@@ -156,15 +156,15 @@ describe Dnsimple::Client, ".domains" do
|
|
156
156
|
let(:email_forward_id) { 1 }
|
157
157
|
|
158
158
|
before do
|
159
|
-
stub_request(:delete, %r
|
160
|
-
|
159
|
+
stub_request(:delete, %r{/v2/#{account_id}/domains/#{domain_id}/email_forwards/#{email_forward_id}$}).
|
160
|
+
to_return(read_http_fixture("deleteEmailForward/success.http"))
|
161
161
|
end
|
162
162
|
|
163
163
|
it "builds the correct request" do
|
164
164
|
subject.delete_email_forward(account_id, domain_id, email_forward_id)
|
165
165
|
|
166
|
-
expect(WebMock).to have_requested(:delete, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards/#{email_forward_id}")
|
167
|
-
|
166
|
+
expect(WebMock).to have_requested(:delete, "https://api.dnsimple.test/v2/#{account_id}/domains/#{domain_id}/email_forwards/#{email_forward_id}").
|
167
|
+
with(headers: { 'Accept' => 'application/json' })
|
168
168
|
end
|
169
169
|
|
170
170
|
it "returns nothing" do
|
@@ -177,8 +177,8 @@ describe Dnsimple::Client, ".domains" do
|
|
177
177
|
|
178
178
|
context "when the email forward does not exist" do
|
179
179
|
it "raises NotFoundError" do
|
180
|
-
stub_request(:delete, %r
|
181
|
-
|
180
|
+
stub_request(:delete, %r{/v2}).
|
181
|
+
to_return(read_http_fixture("notfound-emailforward.http"))
|
182
182
|
|
183
183
|
expect {
|
184
184
|
subject.delete_email_forward(account_id, domain_id, email_forward_id)
|