hello_sign 0.6.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/hello_sign/client.rb +2 -2
- data/lib/hello_sign/parameters/reusable_form_signature_request.rb +9 -9
- data/lib/hello_sign/parameters/signature_request.rb +15 -15
- data/lib/hello_sign/parameters/unclaimed_draft.rb +7 -7
- data/lib/hello_sign/proxy/account.rb +1 -1
- data/lib/hello_sign/proxy/reusable_form.rb +10 -9
- data/lib/hello_sign/proxy/settings.rb +1 -1
- data/lib/hello_sign/proxy/signature_request.rb +13 -12
- data/lib/hello_sign/proxy/team.rb +4 -4
- data/lib/hello_sign/proxy/unclaimed_draft.rb +1 -1
- data/lib/hello_sign/proxy.rb +4 -4
- data/lib/hello_sign/upload_io.rb +56 -0
- data/lib/hello_sign/version.rb +1 -1
- data/lib/hello_sign.rb +1 -1
- data/spec/helper.rb +0 -2
- data/spec/integration/account_spec.rb +4 -4
- data/spec/integration/hello_sign_spec.rb +2 -2
- data/spec/integration/helper.rb +6 -1
- data/spec/integration/reusable_form_spec.rb +16 -20
- data/spec/integration/signature_request_spec.rb +52 -57
- data/spec/integration/team_spec.rb +8 -8
- data/spec/integration/unclaimed_draft_spec.rb +3 -3
- data/spec/shared_examples/proxy.rb +15 -5
- data/spec/unit/client_spec.rb +3 -3
- data/spec/unit/middleware/raise_error_spec.rb +1 -1
- data/spec/unit/parameters/reusable_form_signature_request_spec.rb +17 -17
- data/spec/unit/parameters/signature_request_spec.rb +25 -20
- data/spec/unit/parameters/unclaimed_draft_spec.rb +12 -11
- data/spec/unit/proxy/account_spec.rb +6 -6
- data/spec/unit/proxy/reusable_form_spec.rb +13 -12
- data/spec/unit/proxy/settings_spec.rb +3 -3
- data/spec/unit/proxy/signature_request_spec.rb +29 -32
- data/spec/unit/proxy/team_spec.rb +12 -12
- data/spec/unit/proxy/unclaimed_draft_spec.rb +1 -1
- data/spec/unit/upload_io_spec.rb +60 -0
- metadata +19 -15
@@ -6,69 +6,69 @@ describe HelloSign do
|
|
6
6
|
let(:text_file_io) { File.new('spec/fixtures/test.txt') }
|
7
7
|
let(:image_io) { File.new('spec/fixtures/test.jpg') }
|
8
8
|
|
9
|
-
before
|
10
|
-
|
9
|
+
before { stub_post_with_auth('/signature_request/send') }
|
10
|
+
|
11
|
+
example do
|
11
12
|
HelloSign.signature_request.deliver do |request|
|
12
13
|
request.title = 'Lease'
|
13
14
|
request.subject = 'Sign this'
|
14
15
|
request.message = 'You must sign this.'
|
15
16
|
request.ccs = ['lawyer@lawfirm.com', 'spouse@family.com']
|
16
17
|
request.signers = [
|
17
|
-
{:
|
18
|
-
{:
|
18
|
+
{name: 'Jack', email_address: 'jack@hill.com'},
|
19
|
+
{name: 'Jill', email_address: 'jill@hill.com'}
|
19
20
|
]
|
20
21
|
request.files = [
|
21
|
-
{:
|
22
|
-
{:
|
22
|
+
{filename: 'test.txt', io: text_file_io, mime: 'text/plain'},
|
23
|
+
{filename: 'spec/fixtures/test.txt', mime: 'text/xml'},
|
24
|
+
{filename: 'spec/fixtures/test.jpg'},
|
25
|
+
{io: image_io, mime: 'image/jpeg'}
|
23
26
|
]
|
24
27
|
end
|
25
|
-
end
|
26
28
|
|
27
|
-
it "sends a signature request to the HelloSign API" do
|
28
29
|
expect(a_post_with_auth('/signature_request/send')
|
29
|
-
.with(:
|
30
|
+
.with(headers: {'Content-Type' => /multipart\/form-data/}, body: /This is a test upload file\./)
|
30
31
|
).to have_been_made
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
34
35
|
context "when using a reusable form" do
|
35
|
-
before
|
36
|
-
|
37
|
-
|
36
|
+
before { stub_post_with_auth('/signature_request/send_with_reusable_form') }
|
37
|
+
|
38
|
+
example do
|
39
|
+
HelloSign.signature_request.deliver(form: 'form_id') do |request|
|
38
40
|
request.title = 'Lease'
|
39
41
|
request.subject = 'Sign this'
|
40
42
|
request.message = 'You must sign this.'
|
41
43
|
request.ccs = [
|
42
|
-
{:
|
43
|
-
{:
|
44
|
+
{email_address: 'lawyer@lawfirm.com', role: 'lawyer'},
|
45
|
+
{email_address: 'accountant@llc.com', role: 'accountant'}
|
44
46
|
]
|
45
47
|
request.signers = [
|
46
|
-
{:
|
47
|
-
{:
|
48
|
+
{name: 'Jack', email_address: 'jack@hill.com', role: 'consultant'},
|
49
|
+
{name: 'Jill', email_address: 'jill@hill.com', role: 'client'}
|
48
50
|
]
|
49
51
|
request.custom_fields = [
|
50
|
-
{:
|
51
|
-
{:
|
52
|
+
{name: 'cost', value: '$20,000'},
|
53
|
+
{name: 'time', value: 'two weeks'}
|
52
54
|
]
|
53
55
|
end
|
54
|
-
end
|
55
56
|
|
56
|
-
it "sends a signature request using a reusable form to the HelloSign API" do
|
57
57
|
expect(a_post_with_auth('/signature_request/send_with_reusable_form')
|
58
|
-
.with(:
|
59
|
-
:
|
60
|
-
:
|
61
|
-
:
|
62
|
-
:
|
63
|
-
:
|
64
|
-
'lawyer' => {:
|
65
|
-
'accountant' => {:
|
58
|
+
.with(body: {
|
59
|
+
reusable_form_id: 'form_id',
|
60
|
+
title: 'Lease',
|
61
|
+
subject: 'Sign this',
|
62
|
+
message: 'You must sign this.',
|
63
|
+
ccs: {
|
64
|
+
'lawyer' => {email_address: 'lawyer@lawfirm.com'},
|
65
|
+
'accountant' => {email_address: 'accountant@llc.com'}
|
66
66
|
},
|
67
|
-
:
|
68
|
-
'consultant' => {:
|
69
|
-
'client' => {:
|
67
|
+
signers: {
|
68
|
+
'consultant' => {name: 'Jack', email_address: 'jack@hill.com'},
|
69
|
+
'client' => {name: 'Jill', email_address: 'jill@hill.com'}
|
70
70
|
},
|
71
|
-
:
|
71
|
+
custom_fields: {
|
72
72
|
'cost' => '$20,000',
|
73
73
|
'time' => 'two weeks'
|
74
74
|
}
|
@@ -79,58 +79,53 @@ describe HelloSign do
|
|
79
79
|
end
|
80
80
|
|
81
81
|
context "when fetching a signature request" do
|
82
|
-
before
|
83
|
-
|
84
|
-
|
85
|
-
|
82
|
+
before { stub_get_with_auth('/signature_request/request_id') }
|
83
|
+
|
84
|
+
example do
|
85
|
+
HelloSign.signature_request('request_id').status
|
86
86
|
|
87
|
-
it "fetches the signature request information from the HelloSign API" do
|
88
87
|
expect(a_get_with_auth('/signature_request/request_id')).to have_been_made
|
89
88
|
end
|
90
89
|
end
|
91
90
|
|
92
91
|
context "when getting a list of signature requests" do
|
93
|
-
before
|
94
|
-
|
92
|
+
before { stub_get_with_auth('/signature_request/list?page=1') }
|
93
|
+
|
94
|
+
example do
|
95
95
|
HelloSign.signature_request.list
|
96
|
-
end
|
97
96
|
|
98
|
-
it "fetches a list of signature requests from the HelloSign API" do
|
99
97
|
expect(a_get_with_auth('/signature_request/list?page=1')).to have_been_made
|
100
98
|
end
|
101
99
|
end
|
102
100
|
|
103
101
|
context "when sending a signature request reminder" do
|
104
|
-
before
|
105
|
-
|
106
|
-
|
107
|
-
|
102
|
+
before { stub_post_with_auth('/signature_request/remind/request_id') }
|
103
|
+
|
104
|
+
example do
|
105
|
+
HelloSign.signature_request('request_id').remind(email: 'john@johnson.com')
|
108
106
|
|
109
|
-
it "sends a reminder request to the HelloSign API" do
|
110
107
|
expect(a_post_with_auth('/signature_request/remind/request_id')
|
111
|
-
.with(:
|
108
|
+
.with(body: {email_address: 'john@johnson.com'})
|
112
109
|
).to have_been_made
|
113
110
|
end
|
114
111
|
end
|
115
112
|
|
116
113
|
context "when canceling a signature request" do
|
117
|
-
before
|
118
|
-
|
119
|
-
|
120
|
-
|
114
|
+
before { stub_post_with_auth('/signature_request/cancel/request_id') }
|
115
|
+
|
116
|
+
example do
|
117
|
+
HelloSign.signature_request('request_id').cancel
|
121
118
|
|
122
|
-
it "sends a signature request cancellation to the HelloSign API" do
|
123
119
|
expect(a_post_with_auth('/signature_request/cancel/request_id')).to have_been_made
|
124
120
|
end
|
125
121
|
end
|
126
122
|
|
127
123
|
context "when fetching a final copy of a signature request" do
|
128
|
-
before
|
129
|
-
|
130
|
-
|
131
|
-
|
124
|
+
before { stub_get_with_auth('/signature_request/final_copy/request_id') }
|
125
|
+
|
126
|
+
example do
|
127
|
+
HelloSign.signature_request('request_id').final_copy
|
132
128
|
|
133
|
-
it "fetches a final copy of the signature request from the HelloSign API" do
|
134
129
|
expect(a_get_with_auth('/signature_request/final_copy/request_id')).to have_been_made
|
135
130
|
end
|
136
131
|
end
|
@@ -5,10 +5,10 @@ describe HelloSign do
|
|
5
5
|
before { stub_post_with_auth('/team/create') }
|
6
6
|
|
7
7
|
example do
|
8
|
-
HelloSign.team.create(:
|
8
|
+
HelloSign.team.create(name: 'The Browncoats')
|
9
9
|
|
10
10
|
expect(a_post_with_auth('/team/create')
|
11
|
-
.with(:
|
11
|
+
.with(body: {name: 'The Browncoats'}))
|
12
12
|
.to have_been_made
|
13
13
|
end
|
14
14
|
end
|
@@ -28,10 +28,10 @@ describe HelloSign do
|
|
28
28
|
before { stub_post_with_auth('/team') }
|
29
29
|
|
30
30
|
example do
|
31
|
-
HelloSign.team.update(:
|
31
|
+
HelloSign.team.update(name: 'The Bluecoats')
|
32
32
|
|
33
33
|
expect(a_post_with_auth('/team')
|
34
|
-
.with(:
|
34
|
+
.with(name: 'The Bluecoats'))
|
35
35
|
.to have_been_made
|
36
36
|
end
|
37
37
|
end
|
@@ -51,10 +51,10 @@ describe HelloSign do
|
|
51
51
|
before { stub_post_with_auth('/team/add_member') }
|
52
52
|
|
53
53
|
example do
|
54
|
-
HelloSign.team.add_member(:
|
54
|
+
HelloSign.team.add_member(email: 'bob@smith.com')
|
55
55
|
|
56
56
|
expect(a_post_with_auth('/team/add_member')
|
57
|
-
.with(:
|
57
|
+
.with(email: 'bob@smith.com'))
|
58
58
|
.to have_been_made
|
59
59
|
end
|
60
60
|
end
|
@@ -63,10 +63,10 @@ describe HelloSign do
|
|
63
63
|
before { stub_post_with_auth('/team/remove_member') }
|
64
64
|
|
65
65
|
example do
|
66
|
-
HelloSign.team.remove_member(:
|
66
|
+
HelloSign.team.remove_member(email: 'bob@smith.com')
|
67
67
|
|
68
68
|
expect(a_post_with_auth('/team/remove_member')
|
69
|
-
.with(:
|
69
|
+
.with(email: 'bob@smith.com'))
|
70
70
|
.to have_been_made
|
71
71
|
end
|
72
72
|
end
|
@@ -10,13 +10,13 @@ describe HelloSign do
|
|
10
10
|
example do
|
11
11
|
HelloSign.unclaimed_draft.create do |draft|
|
12
12
|
draft.files = [
|
13
|
-
{:
|
14
|
-
{:
|
13
|
+
{name: 'test.txt', io: text_io, mime: 'text/plain'},
|
14
|
+
{name: 'test.jpg', io: image_io, mime: 'image/jpeg'}
|
15
15
|
]
|
16
16
|
end
|
17
17
|
|
18
18
|
expect(a_post_with_auth('/unclaimed_draft/create')
|
19
|
-
.with(:
|
19
|
+
.with(headers: {'Content-Type' => /multipart\/form-data/}, body: /This is a test upload file\./)
|
20
20
|
).to have_been_made
|
21
21
|
end
|
22
22
|
end
|
@@ -14,25 +14,35 @@ shared_examples_for 'a proxy' do
|
|
14
14
|
describe "#signature_request" do
|
15
15
|
before { client.signature_request_proxy_source = proxy_source }
|
16
16
|
|
17
|
-
it "returns
|
18
|
-
proxy_source.should_receive(:new).with(client).and_return(proxy)
|
17
|
+
it "returns a signature request proxy" do
|
18
|
+
proxy_source.should_receive(:new).with(client, nil).and_return(proxy)
|
19
19
|
expect(client.signature_request).to eq proxy
|
20
20
|
end
|
21
|
+
|
22
|
+
it "passes on an optional signature request ID" do
|
23
|
+
proxy_source.should_receive(:new).with(client, 'signature_request_id')
|
24
|
+
client.signature_request('signature_request_id')
|
25
|
+
end
|
21
26
|
end
|
22
27
|
|
23
28
|
describe "#reusable_form" do
|
24
29
|
before { client.reusable_form_proxy_source = proxy_source }
|
25
30
|
|
26
|
-
it "returns
|
27
|
-
proxy_source.should_receive(:new).with(client).and_return(proxy)
|
31
|
+
it "returns a reusable form proxy" do
|
32
|
+
proxy_source.should_receive(:new).with(client, nil).and_return(proxy)
|
28
33
|
expect(client.reusable_form).to eq proxy
|
29
34
|
end
|
35
|
+
|
36
|
+
it "passes on an optional reusable form ID" do
|
37
|
+
proxy_source.should_receive(:new).with(client, 'reusable_form_id')
|
38
|
+
client.reusable_form('reusable_form_id')
|
39
|
+
end
|
30
40
|
end
|
31
41
|
|
32
42
|
describe "#team" do
|
33
43
|
before { client.team_proxy_source = proxy_source }
|
34
44
|
|
35
|
-
it "returns
|
45
|
+
it "returns a team proxy" do
|
36
46
|
proxy_source.should_receive(:new).with(client).and_return(proxy)
|
37
47
|
expect(client.team).to eq proxy
|
38
48
|
end
|
data/spec/unit/client_spec.rb
CHANGED
@@ -45,17 +45,17 @@ describe HelloSign::Client do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
context "when a hash is passed to the constructor" do
|
48
|
-
subject(:hs_client) { HelloSign::Client.new(:
|
48
|
+
subject(:hs_client) { HelloSign::Client.new(email_address: email_address, password: password) }
|
49
49
|
|
50
50
|
its(:email_address) { should eq email_address }
|
51
51
|
its(:password) { should eq password }
|
52
52
|
|
53
53
|
it "raises an exception if an email address is not provided" do
|
54
|
-
expect { HelloSign::Client.new(:
|
54
|
+
expect { HelloSign::Client.new(password: 'space') }.to raise_error ArgumentError
|
55
55
|
end
|
56
56
|
|
57
57
|
it "raises an exception if a password is not provided" do
|
58
|
-
expect { HelloSign::Client.new(:
|
58
|
+
expect { HelloSign::Client.new(email_address: 'david@bowman.com') }.to raise_error ArgumentError
|
59
59
|
end
|
60
60
|
end
|
61
61
|
end
|
@@ -11,34 +11,34 @@ describe HelloSign::Parameters::ReusableFormSignatureRequest do
|
|
11
11
|
request_parameters.subject = 'Sign this'
|
12
12
|
request_parameters.message = 'You must sign this.'
|
13
13
|
request_parameters.ccs = [
|
14
|
-
{:
|
15
|
-
{:
|
14
|
+
{email_address: 'lawyer@lawfirm.com', role: 'lawyer'},
|
15
|
+
{email_address: 'accountant@llc.com', role: 'accountant'}
|
16
16
|
]
|
17
17
|
request_parameters.signers = [
|
18
|
-
{:
|
19
|
-
{:
|
18
|
+
{name: 'Jack', email_address: 'jack@hill.com', role: 'consultant'},
|
19
|
+
{name: 'Jill', email_address: 'jill@hill.com', role: 'client'}
|
20
20
|
]
|
21
21
|
request_parameters.custom_fields = [
|
22
|
-
{:
|
23
|
-
{:
|
22
|
+
{name: 'cost', value: '$20,000'},
|
23
|
+
{name: 'time', value: 'two weeks'}
|
24
24
|
]
|
25
25
|
end
|
26
26
|
|
27
27
|
it "returns formatted parameters" do
|
28
28
|
expected = {
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
'lawyer' => {:
|
35
|
-
'accountant' => {:
|
29
|
+
reusable_form_id: 'form_id',
|
30
|
+
title: 'Lease',
|
31
|
+
subject: 'Sign this',
|
32
|
+
message: 'You must sign this.',
|
33
|
+
ccs: {
|
34
|
+
'lawyer' => {email_address: 'lawyer@lawfirm.com'},
|
35
|
+
'accountant' => {email_address: 'accountant@llc.com'}
|
36
36
|
},
|
37
|
-
:
|
38
|
-
'consultant' => {:
|
39
|
-
'client' => {:
|
37
|
+
signers: {
|
38
|
+
'consultant' => {name: 'Jack', email_address: 'jack@hill.com'},
|
39
|
+
'client' => {name: 'Jill', email_address: 'jill@hill.com'}
|
40
40
|
},
|
41
|
-
:
|
41
|
+
custom_fields: {
|
42
42
|
'cost' => '$20,000',
|
43
43
|
'time' => 'two weeks'
|
44
44
|
}
|
@@ -4,20 +4,24 @@ require 'hello_sign/parameters/signature_request'
|
|
4
4
|
describe HelloSign::Parameters::SignatureRequest do
|
5
5
|
describe "#formatted" do
|
6
6
|
let(:request_parameters) { HelloSign::Parameters::SignatureRequest.new }
|
7
|
+
let(:upload_io_source) { double('upload IO source') }
|
7
8
|
let(:text_file) { double('text file') }
|
8
9
|
let(:image_file) { double('image file') }
|
10
|
+
|
11
|
+
before { request_parameters.upload_io_source = upload_io_source }
|
12
|
+
|
9
13
|
context "when all required arguments are set" do
|
10
14
|
let(:expected) do
|
11
15
|
{
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
0 => {:
|
18
|
-
1 => {:
|
16
|
+
title: 'Lease',
|
17
|
+
subject: 'Sign this',
|
18
|
+
message: 'You must sign this.',
|
19
|
+
cc_email_addresses: ['lawyer@lawfirm.com', 'spouse@family.com'], # BUGBUG: should have explicit indexes
|
20
|
+
signers: {
|
21
|
+
0 => {name: 'Jack', email_address: 'jack@hill.com', order: 0},
|
22
|
+
1 => {name: 'Jill', email_address: 'jill@hill.com', order: 1}
|
19
23
|
},
|
20
|
-
:
|
24
|
+
file: {1 => text_file, 2 => image_file}
|
21
25
|
}
|
22
26
|
end
|
23
27
|
|
@@ -27,18 +31,19 @@ describe HelloSign::Parameters::SignatureRequest do
|
|
27
31
|
request_parameters.message = 'You must sign this.'
|
28
32
|
request_parameters.ccs = ['lawyer@lawfirm.com', 'spouse@family.com']
|
29
33
|
request_parameters.signers = [
|
30
|
-
{:
|
31
|
-
{:
|
34
|
+
{name: 'Jack', email_address: 'jack@hill.com'},
|
35
|
+
{name: 'Jill', email_address: 'jill@hill.com'}
|
32
36
|
]
|
33
37
|
request_parameters.files = [
|
34
|
-
{:
|
35
|
-
{:
|
38
|
+
@file_data_1 = {filename: 'test.txt', io: 'text file IO object', mime: 'text/plain'},
|
39
|
+
@file_data_2 = {filename: 'test.jpg', io: 'image file IO object', mime: 'image/jpeg'}
|
36
40
|
]
|
37
41
|
end
|
38
42
|
|
39
43
|
it "returns formatted parameters" do
|
40
|
-
|
41
|
-
|
44
|
+
upload_io_source.should_receive(:new).with(@file_data_1).and_return(text_file)
|
45
|
+
upload_io_source.should_receive(:new).with(@file_data_2).and_return(image_file)
|
46
|
+
[text_file, image_file].each { |file| file.should_receive(:upload).and_return(file) }
|
42
47
|
|
43
48
|
expect(request_parameters.formatted).to eq expected
|
44
49
|
end
|
@@ -47,12 +52,12 @@ describe HelloSign::Parameters::SignatureRequest do
|
|
47
52
|
context "when required parameters are omitted" do
|
48
53
|
let(:expected) do
|
49
54
|
{
|
50
|
-
:
|
51
|
-
:
|
52
|
-
:
|
53
|
-
:
|
54
|
-
:
|
55
|
-
:
|
55
|
+
title: nil,
|
56
|
+
subject: nil,
|
57
|
+
message: nil,
|
58
|
+
cc_email_addresses: nil,
|
59
|
+
signers: {},
|
60
|
+
file: {}
|
56
61
|
}
|
57
62
|
end
|
58
63
|
|
@@ -4,27 +4,28 @@ require 'hello_sign/parameters/unclaimed_draft'
|
|
4
4
|
require 'stringio'
|
5
5
|
|
6
6
|
describe HelloSign::Parameters::UnclaimedDraft do
|
7
|
-
let(:
|
7
|
+
let(:upload_io_source) { double('upload IO source') }
|
8
|
+
subject(:draft_parameters) { HelloSign::Parameters::UnclaimedDraft.new }
|
8
9
|
|
9
|
-
|
10
|
-
draft_parameters.files = [{:name => 'test.txt', :io => StringIO.new('foobar'), :mime => 'text/plain'}]
|
11
|
-
expect(draft_parameters.formatted).to be_a Hash
|
12
|
-
end
|
10
|
+
before { draft_parameters.upload_io_source = upload_io_source }
|
13
11
|
|
14
12
|
describe "#formatted" do
|
15
|
-
let(:text_file)
|
16
|
-
let(:
|
13
|
+
let(:text_file) { double('text file') }
|
14
|
+
let(:image) { double('image') }
|
17
15
|
|
18
16
|
before do
|
19
17
|
draft_parameters.files = [
|
20
|
-
{:
|
21
|
-
{:
|
18
|
+
@file_data_1 = {filename: 'test.txt', io: text_file, mime: 'text/plain'},
|
19
|
+
@file_data_2 = {filename: 'test.jpg', io: image, mime: 'image/jpeg'}
|
22
20
|
]
|
23
21
|
end
|
24
22
|
|
25
23
|
it "returns formatted parameters" do
|
26
|
-
|
27
|
-
|
24
|
+
upload_io_source.should_receive(:new).with(@file_data_1).and_return(text_file)
|
25
|
+
upload_io_source.should_receive(:new).with(@file_data_2).and_return(image)
|
26
|
+
[text_file, image].each { |file| file.should_receive(:upload).and_return(file) }
|
27
|
+
|
28
|
+
expect(draft_parameters.formatted).to eq({file: {0 => text_file, 1 => image}})
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
@@ -18,20 +18,20 @@ describe HelloSign::Proxy::Account do
|
|
18
18
|
it "sends a request to create an account" do
|
19
19
|
client.should_receive(:post).with(
|
20
20
|
'/account/create',
|
21
|
-
:
|
22
|
-
:
|
21
|
+
body: {email_address: 'david@bowman.com', password: 'space'},
|
22
|
+
auth_not_required: true
|
23
23
|
)
|
24
24
|
account_proxy.create(
|
25
|
-
:
|
26
|
-
:
|
25
|
+
email_address: 'david@bowman.com',
|
26
|
+
password: 'space'
|
27
27
|
)
|
28
28
|
end
|
29
29
|
|
30
30
|
it "returns the API response" do
|
31
31
|
expect(
|
32
32
|
account_proxy.create(
|
33
|
-
:
|
34
|
-
:
|
33
|
+
email_address: 'david@bowman.com',
|
34
|
+
password: 'space'
|
35
35
|
)
|
36
36
|
). to eq api_response
|
37
37
|
end
|
@@ -6,19 +6,20 @@ describe HelloSign::Proxy::ReusableForm do
|
|
6
6
|
let(:api_response) { double('API response') }
|
7
7
|
let(:form_id) { 'form_id' }
|
8
8
|
let(:email_address) { 'bob@example.com' }
|
9
|
-
subject(:rf_proxy) { HelloSign::Proxy::ReusableForm.new(client) }
|
9
|
+
subject(:rf_proxy) { HelloSign::Proxy::ReusableForm.new(client, form_id) }
|
10
10
|
|
11
11
|
before do
|
12
12
|
client.stub(:get).and_return(api_response)
|
13
13
|
client.stub(:post).and_return(api_response)
|
14
14
|
end
|
15
15
|
|
16
|
-
its(:client)
|
16
|
+
its(:client) { should eq client }
|
17
|
+
its(:form_id) { should eq form_id }
|
17
18
|
|
18
19
|
describe "#list" do
|
19
20
|
it "sends a request to fetch the list of reusable forms" do
|
20
|
-
client.should_receive(:get).with('/reusable_form/list', :
|
21
|
-
rf_proxy.list(:
|
21
|
+
client.should_receive(:get).with('/reusable_form/list', params: {page: 10})
|
22
|
+
rf_proxy.list(page: 10)
|
22
23
|
end
|
23
24
|
|
24
25
|
it "returns the API response" do
|
@@ -29,33 +30,33 @@ describe HelloSign::Proxy::ReusableForm do
|
|
29
30
|
describe "#show" do
|
30
31
|
it "sends a request to fetch the details of a reusable form" do
|
31
32
|
client.should_receive(:get).with("/reusable_form/#{form_id}")
|
32
|
-
rf_proxy.show
|
33
|
+
rf_proxy.show
|
33
34
|
end
|
34
35
|
|
35
36
|
it "returns the API response" do
|
36
|
-
expect(rf_proxy.show
|
37
|
+
expect(rf_proxy.show).to eq api_response
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
40
41
|
describe "#grant_access" do
|
41
42
|
it "sends a request to grant access" do
|
42
|
-
client.should_receive(:post).with("/reusable_form/add_user/#{form_id}", :
|
43
|
-
rf_proxy.grant_access(
|
43
|
+
client.should_receive(:post).with("/reusable_form/add_user/#{form_id}", body: {email_address: email_address})
|
44
|
+
rf_proxy.grant_access(email_address: email_address)
|
44
45
|
end
|
45
46
|
|
46
47
|
it "returns the API response" do
|
47
|
-
expect(rf_proxy.grant_access(
|
48
|
+
expect(rf_proxy.grant_access(:email => email_address)).to eq api_response
|
48
49
|
end
|
49
50
|
end
|
50
51
|
|
51
52
|
describe "#revoke_access" do
|
52
53
|
it "sends a request to revoke access" do
|
53
|
-
client.should_receive(:post).with("/reusable_form/remove_user/#{form_id}", :
|
54
|
-
rf_proxy.revoke_access(
|
54
|
+
client.should_receive(:post).with("/reusable_form/remove_user/#{form_id}", body: {email_address: email_address})
|
55
|
+
rf_proxy.revoke_access(email_address: email_address)
|
55
56
|
end
|
56
57
|
|
57
58
|
it "returns the API response" do
|
58
|
-
expect(rf_proxy.revoke_access(
|
59
|
+
expect(rf_proxy.revoke_access(email_address: email_address)).to eq api_response
|
59
60
|
end
|
60
61
|
end
|
61
62
|
end
|
@@ -18,12 +18,12 @@ describe HelloSign::Proxy::Settings do
|
|
18
18
|
before { client.stub(:post).and_return(api_response) }
|
19
19
|
|
20
20
|
it "sends a request to update the account's settings" do
|
21
|
-
client.should_receive(:post).with('/account', :
|
22
|
-
settings.update(:
|
21
|
+
client.should_receive(:post).with('/account', body: {callback_url: callback_url})
|
22
|
+
settings.update(callback_url: callback_url)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "returns the API response" do
|
26
|
-
expect(settings.update(:
|
26
|
+
expect(settings.update(callback_url: callback_url)).to be api_response
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|