hubspot-api-ruby 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -9
- data/hubspot-api-ruby.gemspec +3 -4
- data/lib/hubspot/association.rb +79 -53
- data/lib/hubspot/company.rb +2 -2
- data/lib/hubspot/config.rb +10 -9
- data/lib/hubspot/connection.rb +20 -14
- data/lib/hubspot/contact.rb +5 -1
- data/lib/hubspot/contact_list.rb +0 -7
- data/lib/hubspot/custom_event.rb +25 -0
- data/lib/hubspot/deal.rb +34 -14
- data/lib/hubspot/exceptions.rb +2 -0
- data/lib/hubspot/meeting.rb +44 -0
- data/lib/hubspot/properties.rb +1 -1
- data/lib/hubspot-api-ruby.rb +2 -0
- data/spec/lib/hubspot/association_spec.rb +37 -32
- data/spec/lib/hubspot/blog_spec.rb +8 -14
- data/spec/lib/hubspot/company_properties_spec.rb +8 -11
- data/spec/lib/hubspot/company_spec.rb +5 -6
- data/spec/lib/hubspot/contact_list_spec.rb +76 -53
- data/spec/lib/hubspot/contact_properties_spec.rb +5 -34
- data/spec/lib/hubspot/contact_spec.rb +1 -3
- data/spec/lib/hubspot/custom_event_spec.rb +27 -0
- data/spec/lib/hubspot/deal_pipeline_spec.rb +4 -15
- data/spec/lib/hubspot/deal_properties_spec.rb +11 -58
- data/spec/lib/hubspot/deal_spec.rb +11 -53
- data/spec/lib/hubspot/engagement_spec.rb +20 -31
- data/spec/lib/hubspot/file_spec.rb +5 -30
- data/spec/lib/hubspot/form_spec.rb +36 -33
- data/spec/lib/hubspot/meeting_spec.rb +75 -0
- data/spec/spec_helper.rb +13 -4
- data/spec/support/vcr.rb +3 -6
- metadata +12 -24
- data/spec/lib/hubspot/topic_spec.rb +0 -23
- data/spec/support/tests_helper.rb +0 -17
@@ -1,11 +1,25 @@
|
|
1
1
|
describe Hubspot::Form do
|
2
|
-
let(:guid) { '78c2891f-ebdd-44c0-bd94-15c012bbbfbf' } # '561d9ce9-bb4c-45b4-8e32-21cdeaa3a7f0'
|
3
2
|
let(:example_form_hash) do
|
4
3
|
VCR.use_cassette('form_example') do
|
5
|
-
HTTParty.get("https://api.hubapi.com#{Hubspot::Form::FORMS_PATH}
|
4
|
+
HTTParty.get("https://api.hubapi.com#{Hubspot::Form::FORMS_PATH}/038e819c-5262-4c13-8550-8cabe38c4309/?hapikey=demo").parsed_response
|
6
5
|
end
|
7
6
|
end
|
8
7
|
|
8
|
+
let(:create_params) do
|
9
|
+
{
|
10
|
+
name: "Demo Form #{SecureRandom.hex}",
|
11
|
+
action: '',
|
12
|
+
method: 'POST',
|
13
|
+
cssClass: 'hs-form stacked',
|
14
|
+
redirect: '',
|
15
|
+
submitText: 'Sign Up',
|
16
|
+
followUpId: '',
|
17
|
+
leadNurturingCampaignId: '',
|
18
|
+
notifyRecipients: '',
|
19
|
+
embeddedCode: ''
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
9
23
|
describe '#initialize' do
|
10
24
|
subject { Hubspot::Form.new(example_form_hash) }
|
11
25
|
|
@@ -14,14 +28,13 @@ describe Hubspot::Form do
|
|
14
28
|
its(:properties) { should be_a(Hash) }
|
15
29
|
end
|
16
30
|
|
17
|
-
before { Hubspot.configure(hapikey: 'demo', portal_id: '62515') }
|
18
|
-
|
19
31
|
describe '.all' do
|
32
|
+
before { Hubspot.configure(hapikey: 'demo') }
|
33
|
+
|
20
34
|
cassette 'find_all_forms'
|
21
35
|
|
22
36
|
it 'returns all forms' do
|
23
37
|
forms = Hubspot::Form.all
|
24
|
-
expect(forms.count).to be > 20
|
25
38
|
|
26
39
|
form = forms.first
|
27
40
|
expect(form).to be_a(Hubspot::Form)
|
@@ -29,8 +42,10 @@ describe Hubspot::Form do
|
|
29
42
|
end
|
30
43
|
|
31
44
|
describe '.find' do
|
45
|
+
before { Hubspot.configure(hapikey: 'demo') }
|
46
|
+
|
32
47
|
cassette 'form_find'
|
33
|
-
subject { Hubspot::Form.find(guid) }
|
48
|
+
subject { Hubspot::Form.find(Hubspot::Form.all.first.guid) }
|
34
49
|
|
35
50
|
context 'when the form is found' do
|
36
51
|
it { should be_an_instance_of Hubspot::Form }
|
@@ -39,31 +54,17 @@ describe Hubspot::Form do
|
|
39
54
|
|
40
55
|
context 'when the form is not found' do
|
41
56
|
it 'raises an error' do
|
42
|
-
expect { Hubspot::Form.find(-1) }.to raise_error(Hubspot::
|
57
|
+
expect { Hubspot::Form.find(-1) }.to raise_error(Hubspot::NotFoundError)
|
43
58
|
end
|
44
59
|
end
|
45
60
|
end
|
46
61
|
|
47
62
|
describe '.create' do
|
48
|
-
subject { Hubspot::Form.create!(
|
63
|
+
subject { Hubspot::Form.create!(create_params) }
|
49
64
|
|
50
65
|
context 'with all required parameters' do
|
51
66
|
cassette 'create_form'
|
52
67
|
|
53
|
-
let(:params) do
|
54
|
-
{
|
55
|
-
name: "Demo Form #{Time.now.to_i}",
|
56
|
-
action: '',
|
57
|
-
method: 'POST',
|
58
|
-
cssClass: 'hs-form stacked',
|
59
|
-
redirect: '',
|
60
|
-
submitText: 'Sign Up',
|
61
|
-
followUpId: '',
|
62
|
-
leadNurturingCampaignId: '',
|
63
|
-
notifyRecipients: '',
|
64
|
-
embeddedCode: ''
|
65
|
-
}
|
66
|
-
end
|
67
68
|
it { should be_an_instance_of Hubspot::Form }
|
68
69
|
its(:guid) { should be_a(String) }
|
69
70
|
end
|
@@ -78,6 +79,7 @@ describe Hubspot::Form do
|
|
78
79
|
end
|
79
80
|
|
80
81
|
describe '#fields' do
|
82
|
+
before { Hubspot.configure(hapikey: 'demo') }
|
81
83
|
context 'returning all the fields' do
|
82
84
|
cassette 'fields_among_form'
|
83
85
|
|
@@ -117,11 +119,11 @@ describe Hubspot::Form do
|
|
117
119
|
describe '#submit' do
|
118
120
|
cassette 'form_submit_data'
|
119
121
|
|
120
|
-
let(:form) { Hubspot::Form.
|
122
|
+
let(:form) { Hubspot::Form.create!(create_params) }
|
121
123
|
|
122
124
|
context 'with a valid portal id' do
|
123
125
|
before do
|
124
|
-
Hubspot.configure(hapikey:
|
126
|
+
Hubspot.configure(hapikey: ENV.fetch("HUBSPOT_HAPI_KEY"), portal_id: ENV.fetch("HUBSPOT_PORTAL_ID"))
|
125
127
|
end
|
126
128
|
|
127
129
|
it 'returns true if the form submission is successful' do
|
@@ -133,7 +135,7 @@ describe Hubspot::Form do
|
|
133
135
|
|
134
136
|
context 'with an invalid portal id' do
|
135
137
|
before do
|
136
|
-
Hubspot.configure(hapikey:
|
138
|
+
Hubspot.configure(hapikey: ENV.fetch("HUBSPOT_HAPI_KEY"), portal_id: "xxx")
|
137
139
|
end
|
138
140
|
|
139
141
|
it 'returns false in case of errors' do
|
@@ -144,13 +146,15 @@ describe Hubspot::Form do
|
|
144
146
|
end
|
145
147
|
|
146
148
|
context 'when initializing Hubspot::Form directly' do
|
147
|
-
let(:
|
149
|
+
let(:f) { Hubspot::Form.new('guid' => form.guid) }
|
148
150
|
|
149
|
-
before
|
151
|
+
before do
|
152
|
+
Hubspot.configure(hapikey: ENV.fetch("HUBSPOT_HAPI_KEY"), portal_id: ENV.fetch("HUBSPOT_PORTAL_ID"))
|
153
|
+
end
|
150
154
|
|
151
155
|
it 'returns true if the form submission is successful' do
|
152
156
|
params = {}
|
153
|
-
result =
|
157
|
+
result = f.submit(params)
|
154
158
|
result.should be true
|
155
159
|
end
|
156
160
|
end
|
@@ -159,16 +163,16 @@ describe Hubspot::Form do
|
|
159
163
|
describe '#update!' do
|
160
164
|
cassette 'form_update'
|
161
165
|
|
162
|
-
new_name =
|
166
|
+
new_name = "updated form name #{SecureRandom.hex}"
|
163
167
|
redirect = 'http://hubspot.com'
|
164
168
|
|
165
|
-
let(:form) { Hubspot::Form.
|
169
|
+
let(:form) { Hubspot::Form.create!(create_params) }
|
166
170
|
let(:params) { { name: new_name, redirect: redirect } }
|
167
171
|
subject { form.update!(params) }
|
168
172
|
|
169
173
|
it { should be_an_instance_of Hubspot::Form }
|
170
174
|
it 'updates properties' do
|
171
|
-
subject.properties['name'].should
|
175
|
+
subject.properties['name'].should start_with('updated form name ')
|
172
176
|
subject.properties['redirect'].should be == redirect
|
173
177
|
end
|
174
178
|
end
|
@@ -176,8 +180,7 @@ describe Hubspot::Form do
|
|
176
180
|
describe '#destroy!' do
|
177
181
|
cassette 'form_destroy'
|
178
182
|
|
179
|
-
|
180
|
-
let(:form) { Hubspot::Form.find('beb92950-ca65-4daf-87ae-a42c054e429f') }
|
183
|
+
let(:form) { Hubspot::Form.create!(create_params) }
|
181
184
|
subject { form.destroy! }
|
182
185
|
it { should be true }
|
183
186
|
|
@@ -0,0 +1,75 @@
|
|
1
|
+
RSpec.describe Hubspot::Meeting do
|
2
|
+
|
3
|
+
let(:hubspot_owner_id) { 123 }
|
4
|
+
let(:hs_meeting_title) { 'hs_meeting_title' }
|
5
|
+
let(:hs_meeting_body) { 'hs_meeting_body' }
|
6
|
+
let(:hs_meeting_start_time) { DateTime.strptime('2022-05-03T10:00:00+01:00', '%Y-%m-%dT%H:%M:%S%z') }
|
7
|
+
let(:hs_meeting_end_time) { DateTime.strptime('2022-05-03T10:15:00+01:00', '%Y-%m-%dT%H:%M:%S%z') }
|
8
|
+
|
9
|
+
describe '.create' do
|
10
|
+
context 'with properties' do
|
11
|
+
|
12
|
+
subject do
|
13
|
+
described_class.create!(hubspot_owner_id,
|
14
|
+
hs_meeting_title,
|
15
|
+
hs_meeting_body,
|
16
|
+
hs_meeting_start_time,
|
17
|
+
hs_meeting_end_time)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'creates a new meeting with valid properties' do
|
21
|
+
VCR.use_cassette 'meeting' do
|
22
|
+
expect(subject[:id]).not_to be_nil
|
23
|
+
expect(DateTime.parse(subject[:properties][:hs_meeting_start_time])).to eq(hs_meeting_start_time)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context 'with an invalid hs_meeting_start_time' do
|
29
|
+
subject { described_class.create!(hubspot_owner_id,
|
30
|
+
hs_meeting_title,
|
31
|
+
hs_meeting_body,
|
32
|
+
'invalid',
|
33
|
+
hs_meeting_end_time) }
|
34
|
+
|
35
|
+
it 'raises an error' do
|
36
|
+
VCR.use_cassette 'meeting_error' do
|
37
|
+
expect { subject }.to raise_error(Hubspot::RequestError)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe '#destroy!' do
|
44
|
+
let(:meeting) do
|
45
|
+
Hubspot::Meeting.create!(hubspot_owner_id,
|
46
|
+
hs_meeting_title,
|
47
|
+
hs_meeting_body,
|
48
|
+
hs_meeting_start_time,
|
49
|
+
hs_meeting_end_time)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should be destroyed" do
|
53
|
+
VCR.use_cassette 'meeting_destroy' do
|
54
|
+
expect(Hubspot::Meeting.destroy!(meeting[:id])).to be_truthy
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe '#associate!' do
|
60
|
+
let(:contact) { create :contact }
|
61
|
+
let(:meeting) do
|
62
|
+
Hubspot::Meeting.create!(hubspot_owner_id,
|
63
|
+
hs_meeting_title,
|
64
|
+
hs_meeting_body,
|
65
|
+
hs_meeting_start_time,
|
66
|
+
hs_meeting_end_time)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should be success" do
|
70
|
+
VCR.use_cassette 'meeting_associate' do
|
71
|
+
expect(Hubspot::Meeting.associate!(meeting[:id], contact.id)).to be_truthy
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -10,7 +10,7 @@ SimpleCov.start do
|
|
10
10
|
add_filter "/.bundle/"
|
11
11
|
end
|
12
12
|
|
13
|
-
require 'dotenv
|
13
|
+
require 'dotenv'
|
14
14
|
require 'rspec'
|
15
15
|
require 'rspec/its'
|
16
16
|
require 'webmock/rspec'
|
@@ -19,6 +19,8 @@ require 'faker'
|
|
19
19
|
require 'byebug'
|
20
20
|
require 'hubspot-api-ruby'
|
21
21
|
|
22
|
+
Dotenv.load('.env.test')
|
23
|
+
|
22
24
|
# Requires supporting files with custom matchers and macros, etc,
|
23
25
|
# in ./support/ and its subdirectories.
|
24
26
|
Dir["#{RSPEC_ROOT}/support/**/*.rb"].each {|f| require f}
|
@@ -27,10 +29,18 @@ Dir["#{RSPEC_ROOT}/support/**/*.rb"].each {|f| require f}
|
|
27
29
|
Dir["#{RSPEC_ROOT}/shared_examples/**/*.rb"].each {|f| require f}
|
28
30
|
|
29
31
|
RSpec.configure do |config|
|
30
|
-
config.
|
31
|
-
Hubspot
|
32
|
+
config.before(:all) do
|
33
|
+
Hubspot.configure(hapikey: ENV.fetch("HUBSPOT_HAPI_KEY"))
|
34
|
+
end
|
35
|
+
|
36
|
+
config.before(:each) do
|
37
|
+
Hubspot.configure(hapikey: ENV.fetch("HUBSPOT_HAPI_KEY"))
|
32
38
|
end
|
33
39
|
|
40
|
+
# config.after(:each) do
|
41
|
+
# Hubspot::Config.reset!
|
42
|
+
# end
|
43
|
+
|
34
44
|
config.filter_run_when_matching :focus
|
35
45
|
|
36
46
|
# Setup FactoryBot
|
@@ -40,5 +50,4 @@ RSpec.configure do |config|
|
|
40
50
|
end
|
41
51
|
|
42
52
|
config.extend CassetteHelper
|
43
|
-
config.extend TestsHelper
|
44
53
|
end
|
data/spec/support/vcr.rb
CHANGED
@@ -1,16 +1,13 @@
|
|
1
1
|
require "vcr"
|
2
2
|
|
3
3
|
def vcr_record_mode
|
4
|
-
|
5
|
-
:new_episodes
|
6
|
-
else
|
7
|
-
:none
|
8
|
-
end
|
4
|
+
ENV["VCR_RECORD_MODE"]&.to_sym || :none
|
9
5
|
end
|
10
6
|
|
11
7
|
VCR.configure do |c|
|
12
8
|
c.cassette_library_dir = "#{RSPEC_ROOT}/fixtures/vcr_cassettes"
|
13
9
|
c.hook_into :webmock
|
14
10
|
c.default_cassette_options = { record: vcr_record_mode }
|
15
|
-
c.filter_sensitive_data("<HAPI_KEY>") { ENV.fetch("HUBSPOT_HAPI_KEY"
|
11
|
+
c.filter_sensitive_data("<HAPI_KEY>") { ENV.fetch("HUBSPOT_HAPI_KEY") }
|
12
|
+
c.filter_sensitive_data("<PORTAL_ID>") { ENV.fetch("HUBSPOT_PORTAL_ID") }
|
16
13
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hubspot-api-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-06-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.10'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: appraisal
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.2'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.2'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: dotenv
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -288,6 +274,7 @@ files:
|
|
288
274
|
- lib/hubspot/contact.rb
|
289
275
|
- lib/hubspot/contact_list.rb
|
290
276
|
- lib/hubspot/contact_properties.rb
|
277
|
+
- lib/hubspot/custom_event.rb
|
291
278
|
- lib/hubspot/deal.rb
|
292
279
|
- lib/hubspot/deal_pipeline.rb
|
293
280
|
- lib/hubspot/deal_properties.rb
|
@@ -297,6 +284,7 @@ files:
|
|
297
284
|
- lib/hubspot/exceptions.rb
|
298
285
|
- lib/hubspot/file.rb
|
299
286
|
- lib/hubspot/form.rb
|
287
|
+
- lib/hubspot/meeting.rb
|
300
288
|
- lib/hubspot/oauth.rb
|
301
289
|
- lib/hubspot/owner.rb
|
302
290
|
- lib/hubspot/paged_collection.rb
|
@@ -319,6 +307,7 @@ files:
|
|
319
307
|
- spec/lib/hubspot/contact_list_spec.rb
|
320
308
|
- spec/lib/hubspot/contact_properties_spec.rb
|
321
309
|
- spec/lib/hubspot/contact_spec.rb
|
310
|
+
- spec/lib/hubspot/custom_event_spec.rb
|
322
311
|
- spec/lib/hubspot/deal_pipeline_spec.rb
|
323
312
|
- spec/lib/hubspot/deal_properties_spec.rb
|
324
313
|
- spec/lib/hubspot/deal_spec.rb
|
@@ -327,10 +316,10 @@ files:
|
|
327
316
|
- spec/lib/hubspot/event_spec.rb
|
328
317
|
- spec/lib/hubspot/file_spec.rb
|
329
318
|
- spec/lib/hubspot/form_spec.rb
|
319
|
+
- spec/lib/hubspot/meeting_spec.rb
|
330
320
|
- spec/lib/hubspot/owner_spec.rb
|
331
321
|
- spec/lib/hubspot/properties_spec.rb
|
332
322
|
- spec/lib/hubspot/resource_spec.rb
|
333
|
-
- spec/lib/hubspot/topic_spec.rb
|
334
323
|
- spec/lib/hubspot/utils_spec.rb
|
335
324
|
- spec/lib/tasks/hubspot_spec.rb
|
336
325
|
- spec/shared_examples/saveable_resource.rb
|
@@ -340,14 +329,13 @@ files:
|
|
340
329
|
- spec/support/cassette_helper.rb
|
341
330
|
- spec/support/hubspot_api_helpers.rb
|
342
331
|
- spec/support/rake.rb
|
343
|
-
- spec/support/tests_helper.rb
|
344
332
|
- spec/support/vcr.rb
|
345
|
-
homepage:
|
333
|
+
homepage: https://github.com/captaincontrat/hubspot-api-ruby
|
346
334
|
licenses:
|
347
335
|
- MIT
|
348
336
|
metadata:
|
349
|
-
changelog_uri: https://github.com/
|
350
|
-
post_install_message:
|
337
|
+
changelog_uri: https://github.com/captaincontrat/hubspot-api-ruby/blob/master/History.md
|
338
|
+
post_install_message:
|
351
339
|
rdoc_options: []
|
352
340
|
require_paths:
|
353
341
|
- lib
|
@@ -362,8 +350,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
362
350
|
- !ruby/object:Gem::Version
|
363
351
|
version: '0'
|
364
352
|
requirements: []
|
365
|
-
rubygems_version: 3.
|
366
|
-
signing_key:
|
353
|
+
rubygems_version: 3.2.32
|
354
|
+
signing_key:
|
367
355
|
specification_version: 4
|
368
356
|
summary: hubspot-api-ruby is a wrapper for the HubSpot REST API
|
369
357
|
test_files: []
|
@@ -1,23 +0,0 @@
|
|
1
|
-
describe Hubspot::Topic do
|
2
|
-
before do
|
3
|
-
Hubspot.configure(hapikey: "demo")
|
4
|
-
end
|
5
|
-
|
6
|
-
describe ".list" do
|
7
|
-
cassette "topics_list"
|
8
|
-
let(:topics) { Hubspot::Topic.list }
|
9
|
-
|
10
|
-
it "should have a list of topics" do
|
11
|
-
topics.count.should be(3)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe ".find_by_topic_id" do
|
16
|
-
cassette "topics_list"
|
17
|
-
|
18
|
-
it "should find a specific topic" do
|
19
|
-
topic = Hubspot::Topic.find_by_topic_id(349001328)
|
20
|
-
topic['id'].should eq(349001328)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module TestsHelper
|
2
|
-
def expect_count_and_offset(&block)
|
3
|
-
it 'returns only the number of objects specified by count' do
|
4
|
-
result = block.call(count: 2)
|
5
|
-
expect(result.size).to eql 2
|
6
|
-
|
7
|
-
result = block.call(count: 4)
|
8
|
-
expect(result.size).to eql 4
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'returns objects by a specified offset' do
|
12
|
-
non_offset_objects = block.call(count: 2)
|
13
|
-
objects_with_offset = block.call(count: 2, offset: 2)
|
14
|
-
expect(non_offset_objects).to_not eql objects_with_offset
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|