patch_ruby 1.9.0 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/Gemfile +1 -2
  4. data/Gemfile.lock +20 -25
  5. data/lib/patch_ruby/api/estimates_api.rb +33 -25
  6. data/lib/patch_ruby/api/orders_api.rb +21 -16
  7. data/lib/patch_ruby/api/preferences_api.rb +17 -13
  8. data/lib/patch_ruby/api/projects_api.rb +9 -7
  9. data/lib/patch_ruby/api_client.rb +51 -49
  10. data/lib/patch_ruby/api_error.rb +1 -1
  11. data/lib/patch_ruby/configuration.rb +38 -9
  12. data/lib/patch_ruby/models/allocation.rb +21 -11
  13. data/lib/patch_ruby/models/create_bitcoin_estimate_request.rb +25 -19
  14. data/lib/patch_ruby/models/create_ethereum_estimate_request.rb +26 -21
  15. data/lib/patch_ruby/models/create_mass_estimate_request.rb +22 -13
  16. data/lib/patch_ruby/models/create_order_request.rb +21 -11
  17. data/lib/patch_ruby/models/create_preference_request.rb +21 -11
  18. data/lib/patch_ruby/models/error_response.rb +22 -13
  19. data/lib/patch_ruby/models/estimate.rb +22 -13
  20. data/lib/patch_ruby/models/estimate_list_response.rb +22 -13
  21. data/lib/patch_ruby/models/estimate_response.rb +22 -13
  22. data/lib/patch_ruby/models/meta_index_object.rb +23 -15
  23. data/lib/patch_ruby/models/order.rb +23 -15
  24. data/lib/patch_ruby/models/order_list_response.rb +22 -13
  25. data/lib/patch_ruby/models/order_response.rb +22 -13
  26. data/lib/patch_ruby/models/photo.rb +21 -11
  27. data/lib/patch_ruby/models/preference.rb +21 -11
  28. data/lib/patch_ruby/models/preference_list_response.rb +22 -13
  29. data/lib/patch_ruby/models/preference_response.rb +22 -13
  30. data/lib/patch_ruby/models/project.rb +24 -17
  31. data/lib/patch_ruby/models/project_list_response.rb +22 -13
  32. data/lib/patch_ruby/models/project_response.rb +22 -13
  33. data/lib/patch_ruby/models/sdg.rb +21 -11
  34. data/lib/patch_ruby/models/standard.rb +21 -11
  35. data/lib/patch_ruby/version.rb +2 -2
  36. data/lib/patch_ruby.rb +1 -1
  37. data/patch_ruby.gemspec +7 -3
  38. data/spec/api_client_spec.rb +34 -13
  39. data/spec/configuration_spec.rb +1 -1
  40. data/spec/integration/preferences_spec.rb +1 -1
  41. data/spec/models/create_mass_estimate_request_spec.rb +1 -1
  42. data/spec/models/error_response_spec.rb +1 -1
  43. data/spec/models/estimate_list_response_spec.rb +1 -1
  44. data/spec/models/estimate_response_spec.rb +1 -1
  45. data/spec/models/estimate_spec.rb +1 -1
  46. data/spec/models/meta_index_object_spec.rb +1 -1
  47. data/spec/models/order_list_response_spec.rb +1 -1
  48. data/spec/models/order_response_spec.rb +1 -1
  49. data/spec/models/order_spec.rb +1 -1
  50. data/spec/models/preference_list_response_spec.rb +1 -1
  51. data/spec/models/preference_response_spec.rb +1 -1
  52. data/spec/models/project_list_response_spec.rb +1 -1
  53. data/spec/models/project_response_spec.rb +1 -1
  54. data/spec/models/project_spec.rb +1 -1
  55. data/spec/spec_helper.rb +68 -61
  56. metadata +38 -58
  57. data/lib/patch_ruby/.api_client.rb.un~ +0 -0
  58. data/lib/patch_ruby/.configuration.rb.un~ +0 -0
  59. data/lib/patch_ruby/.version.rb.un~ +0 -0
  60. data/lib/patch_ruby/api/.orders_api.rb.un~ +0 -0
  61. data/lib/patch_ruby/models/.create_ethereum_estimate_request.rb.un~ +0 -0
  62. data/spec/.spec_helper.rb.un~ +0 -0
  63. data/spec/integration/.estimates_spec.rb.un~ +0 -0
  64. data/spec/integration/.orders_spec.rb.un~ +0 -0
  65. data/spec/integration/.preferences_spec.rb.un~ +0 -0
  66. data/spec/integration/.projects_spec.rb.un~ +0 -0
@@ -6,11 +6,12 @@
6
6
  The version of the OpenAPI document: v1
7
7
  Contact: developers@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.2.1
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
+ require 'time'
14
15
 
15
16
  module Patch
16
17
  class Standard
@@ -32,6 +33,11 @@ module Patch
32
33
  }
33
34
  end
34
35
 
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ attribute_map.values
39
+ end
40
+
35
41
  # Attribute type mapping.
36
42
  def self.openapi_types
37
43
  {
@@ -41,13 +47,13 @@ module Patch
41
47
  }
42
48
  end
43
49
 
44
- # Set with nullable attributes.
50
+ # List of attributes with nullable: true
45
51
  def self.openapi_nullable
46
- nullable_properties = Set.new
47
-
48
- nullable_properties
52
+ Set.new([
53
+ ])
49
54
  end
50
55
 
56
+
51
57
  # Allows models with corresponding API classes to delegate API operations to those API classes
52
58
  # Exposes Model.operation_id which delegates to ModelsApi.new.operation_id
53
59
  # Eg. Order.create_order delegates to OrdersApi.new.create_order
@@ -150,7 +156,9 @@ module Patch
150
156
  def build_from_hash(attributes)
151
157
  return nil unless attributes.is_a?(Hash)
152
158
  self.class.openapi_types.each_pair do |key, type|
153
- if type =~ /\AArray<(.*)>/i
159
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
160
+ self.send("#{key}=", nil)
161
+ elsif type =~ /\AArray<(.*)>/i
154
162
  # check to ensure the input is an array given that the attribute
155
163
  # is documented as an array but the input is not
156
164
  if attributes[self.class.attribute_map[key]].is_a?(Array)
@@ -158,7 +166,7 @@ module Patch
158
166
  end
159
167
  elsif !attributes[self.class.attribute_map[key]].nil?
160
168
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
161
- end # or else data not found in attributes(hash), not an issue as the data can be optional
169
+ end
162
170
  end
163
171
 
164
172
  self
@@ -170,8 +178,8 @@ module Patch
170
178
  # @return [Object] Deserialized data
171
179
  def _deserialize(type, value)
172
180
  case type.to_sym
173
- when :DateTime
174
- DateTime.parse(value)
181
+ when :Time
182
+ Time.parse(value)
175
183
  when :Date
176
184
  Date.parse(value)
177
185
  when :String
@@ -201,7 +209,9 @@ module Patch
201
209
  end
202
210
  end
203
211
  else # model
204
- Patch.const_get(type).build_from_hash(value)
212
+ # models (e.g. Pet) or oneOf
213
+ klass = Patch.const_get(type)
214
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
205
215
  end
206
216
  end
207
217
 
@@ -227,7 +237,7 @@ module Patch
227
237
  is_nullable = self.class.openapi_nullable.include?(attr)
228
238
  next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
229
239
  end
230
-
240
+
231
241
  hash[param] = _to_hash(value)
232
242
  end
233
243
  hash
@@ -6,10 +6,10 @@
6
6
  The version of the OpenAPI document: v1
7
7
  Contact: developers@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.2.1
10
10
 
11
11
  =end
12
12
 
13
13
  module Patch
14
- VERSION = '1.9.0'
14
+ VERSION = '1.10.0'
15
15
  end
data/lib/patch_ruby.rb CHANGED
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: v1
7
7
  Contact: developers@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.2.1
10
10
 
11
11
  =end
12
12
 
data/patch_ruby.gemspec CHANGED
@@ -8,7 +8,7 @@
8
8
  The version of the OpenAPI document: v1
9
9
  Contact: developers@usepatch.com
10
10
  Generated by: https://openapi-generator.tech
11
- OpenAPI Generator version: 4.3.1
11
+ OpenAPI Generator version: 5.2.1
12
12
 
13
13
  =end
14
14
 
@@ -24,11 +24,10 @@ Gem::Specification.new do |s|
24
24
  s.homepage = "https://www.patch.io"
25
25
  s.summary = "Ruby wrapper for the Patch API"
26
26
  s.description = "Ruby wrapper for the Patch API"
27
- s.license = 'MIT'
27
+ s.license = "MIT"
28
28
  s.required_ruby_version = ">= 1.9"
29
29
 
30
30
  s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
31
- s.add_runtime_dependency 'json', '~> 2.1', '>= 2.1.0'
32
31
 
33
32
  s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
34
33
 
@@ -36,4 +35,9 @@ Gem::Specification.new do |s|
36
35
  s.test_files = `find spec/*`.split("\n")
37
36
  s.executables = []
38
37
  s.require_paths = ["lib"]
38
+
39
+ # Start custom
40
+ s.add_development_dependency 'factory_bot', '~> 6.2'
41
+ # End custom
42
+
39
43
  end
@@ -6,26 +6,47 @@
6
6
  The version of the OpenAPI document: v1
7
7
  Contact: developers@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.2.1
10
10
 
11
11
  =end
12
12
 
13
+ require 'spec_helper'
14
+
13
15
  describe Patch::ApiClient do
14
16
  context 'initialization' do
15
- context 'base_path' do
16
- it "prepends a slash to base_path" do
17
- Patch.configure { |c| c.base_path = 'v4/dog' }
18
- expect(Patch::Configuration.default.base_path).to eq('/v4/dog')
19
- end
20
-
21
- it "doesn't prepend a slash if one is already there" do
22
- Patch.configure { |c| c.base_path = '/v4/dog' }
23
- expect(Patch::Configuration.default.base_path).to eq('/v4/dog')
17
+ context 'URL stuff' do
18
+ context 'host' do
19
+ it 'removes http from host' do
20
+ Patch.configure { |c| c.host = 'http://example.com' }
21
+ expect(Patch::Configuration.default.host).to eq('example.com')
22
+ end
23
+
24
+ it 'removes https from host' do
25
+ Patch.configure { |c| c.host = 'https://wookiee.com' }
26
+ expect(Patch::ApiClient.default.config.host).to eq('wookiee.com')
27
+ end
28
+
29
+ it 'removes trailing path from host' do
30
+ Patch.configure { |c| c.host = 'hobo.com/v4' }
31
+ expect(Patch::Configuration.default.host).to eq('hobo.com')
32
+ end
24
33
  end
25
34
 
26
- it "ends up as a blank string if nil" do
27
- Patch.configure { |c| c.base_path = nil }
28
- expect(Patch::Configuration.default.base_path).to eq('')
35
+ context 'base_path' do
36
+ it "prepends a slash to base_path" do
37
+ Patch.configure { |c| c.base_path = 'v4/dog' }
38
+ expect(Patch::Configuration.default.base_path).to eq('/v4/dog')
39
+ end
40
+
41
+ it "doesn't prepend a slash if one is already there" do
42
+ Patch.configure { |c| c.base_path = '/v4/dog' }
43
+ expect(Patch::Configuration.default.base_path).to eq('/v4/dog')
44
+ end
45
+
46
+ it "ends up as a blank string if nil" do
47
+ Patch.configure { |c| c.base_path = nil }
48
+ expect(Patch::Configuration.default.base_path).to eq('')
49
+ end
29
50
  end
30
51
  end
31
52
  end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: v1
7
7
  Contact: developers@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.2.1
10
10
 
11
11
  =end
12
12
 
@@ -7,7 +7,7 @@ RSpec.describe 'Preferences Integration' do
7
7
  begin
8
8
  create_preference_response = Patch::Preference.create_preference(project_id: project_id)
9
9
  preference_id = create_preference_response.data.id
10
- rescue => Patch::ApiError
10
+ rescue Patch::ApiError => e
11
11
  preference_id = Patch::Preference.retrieve_preferences().data.first.id
12
12
  end
13
13
 
@@ -30,7 +30,7 @@ describe 'CreateMassEstimateRequest' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { project_id: @instance.project_id, mass_g: @instance.mass_g } }
33
- let(:nullable_properties) { Set.new(["create_order"]) }
33
+ let(:nullable_properties) { Set.new([:create_order]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of CreateMassEstimateRequest' do
@@ -30,7 +30,7 @@ describe 'ErrorResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
- let(:nullable_properties) { Set.new(["data"]) }
33
+ let(:nullable_properties) { Set.new([:data]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of ErrorResponse' do
@@ -30,7 +30,7 @@ describe 'EstimateListResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data, meta: @instance.meta } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of EstimateListResponse' do
@@ -30,7 +30,7 @@ describe 'EstimateResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of EstimateResponse' do
@@ -30,7 +30,7 @@ describe 'Estimate' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { id: @instance.id, order: @instance.order.to_hash, production: @instance.production, type: @instance.type } }
33
- let(:nullable_properties) { Set.new(["order"]) }
33
+ let(:nullable_properties) { Set.new([:order]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of Estimate' do
@@ -30,7 +30,7 @@ describe 'MetaIndexObject' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { next_page: @instance.next_page, prev_page: @instance.prev_page } }
33
- let(:nullable_properties) { Set.new(["next_page", "prev_page"]) }
33
+ let(:nullable_properties) { Set.new([:next_page, :prev_page]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of MetaIndexObject' do
@@ -30,7 +30,7 @@ describe 'OrderListResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data, meta: @instance.meta } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of OrderListResponse' do
@@ -30,7 +30,7 @@ describe 'OrderResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of OrderResponse' do
@@ -41,7 +41,7 @@ describe 'Order' do
41
41
  metadata: @instance.metadata
42
42
  }
43
43
  }
44
- let(:nullable_properties) { Set.new(["patch_fee_cents_usd", "price_cents_usd"]) }
44
+ let(:nullable_properties) { Set.new([:patch_fee_cents_usd, :price_cents_usd]) }
45
45
  end
46
46
 
47
47
  describe 'test an instance of Order' do
@@ -30,7 +30,7 @@ describe 'PreferenceListResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data, meta: @instance.meta } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of PreferenceListResponse' do
@@ -30,7 +30,7 @@ describe 'PreferenceResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of PreferenceResponse' do
@@ -30,7 +30,7 @@ describe 'ProjectListResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data, meta: @instance.meta } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of ProjectListResponse' do
@@ -30,7 +30,7 @@ describe 'ProjectResponse' do
30
30
  it_behaves_like "a generated class" do
31
31
  let(:instance) { @instance }
32
32
  let(:instance_hash) { { success: @instance.success, error: @instance.error, data: @instance.data } }
33
- let(:nullable_properties) { Set.new(["error"]) }
33
+ let(:nullable_properties) { Set.new([:error]) }
34
34
  end
35
35
 
36
36
  describe 'test an instance of ProjectResponse' do
@@ -44,7 +44,7 @@ describe 'Project' do
44
44
  standard: @instance.standard
45
45
  }
46
46
  }
47
- let(:nullable_properties) { Set.new(["photos", "standard", "sdgs"]) }
47
+ let(:nullable_properties) { Set.new([:photos, :standard, :sdgs]) }
48
48
  end
49
49
 
50
50
  describe 'test an instance of Project' do
data/spec/spec_helper.rb CHANGED
@@ -6,17 +6,19 @@
6
6
  The version of the OpenAPI document: v1
7
7
  Contact: developers@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ OpenAPI Generator version: 5.2.1
10
10
 
11
11
  =end
12
12
 
13
13
  # load the gem
14
14
  require 'patch_ruby'
15
+ # Start custom
15
16
  require 'constants'
16
17
  require 'factory_bot'
18
+ # End custom
17
19
 
18
20
  # Require shared spec examples
19
- Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
21
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
20
22
 
21
23
  # The following was generated by the `rspec --init` command. Conventionally, all
22
24
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
@@ -37,21 +39,6 @@ Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
37
39
  #
38
40
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
39
41
  RSpec.configure do |config|
40
- # Use FactoryBot for test factories
41
- config.include FactoryBot::Syntax::Methods
42
- config.before(:suite) do
43
- FactoryBot.find_definitions
44
- Patch.configure do |config|
45
- if ENV.fetch('LOCAL_SDK_TEST', false)
46
- config.access_token = ENV.fetch('LOCAL_PATCH_API_KEY')
47
- config.scheme = 'http'
48
- config.host = 'api.patch.test:3000'
49
- else
50
- config.access_token = ENV.fetch('SANDBOX_API_KEY')
51
- end
52
- end
53
- end
54
-
55
42
  # rspec-expectations config goes here. You can use an alternate
56
43
  # assertion/expectation library such as wrong or the stdlib/minitest
57
44
  # assertions if you prefer.
@@ -75,57 +62,77 @@ RSpec.configure do |config|
75
62
  mocks.verify_partial_doubles = true
76
63
  end
77
64
 
65
+ # The settings below are suggested to provide a good initial experience
66
+ # with RSpec, but feel free to customize to your heart's content.
67
+ # # These two settings work together to allow you to limit a spec run
68
+ # # to individual examples or groups you care about by tagging them with
69
+ # # `:focus` metadata. When nothing is tagged with `:focus`, all examples
70
+ # # get run.
71
+ # config.filter_run :focus
72
+ # config.run_all_when_everything_filtered = true
73
+ #
74
+ # # Allows RSpec to persist some state between runs in order to support
75
+ # # the `--only-failures` and `--next-failure` CLI options. We recommend
76
+ # # you configure your source control system to ignore this file.
77
+ # config.example_status_persistence_file_path = "spec/examples.txt"
78
+ #
79
+ # # Limits the available syntax to the non-monkey patched syntax that is
80
+ # # recommended. For more details, see:
81
+ # # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
82
+ # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
83
+ # # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
84
+ # config.disable_monkey_patching!
85
+ #
86
+ # # This setting enables warnings. It's recommended, but in some cases may
87
+ # # be too noisy due to issues in dependencies.
88
+ # config.warnings = true
89
+ #
90
+ # # Many RSpec users commonly either run the entire suite or an individual
91
+ # # file, and it's useful to allow more verbose output when running an
92
+ # # individual spec file.
93
+ # if config.files_to_run.one?
94
+ # # Use the documentation formatter for detailed output,
95
+ # # unless a formatter has already been configured
96
+ # # (e.g. via a command-line flag).
97
+ # config.default_formatter = 'doc'
98
+ # end
99
+ #
100
+ # # Print the 10 slowest examples and example groups at the
101
+ # # end of the spec run, to help surface which specs are running
102
+ # # particularly slow.
103
+ # config.profile_examples = 10
104
+
78
105
  # Run specs in random order to surface order dependencies. If you find an
79
106
  # order dependency and want to debug it, you can fix the order by providing
80
107
  # the seed, which is printed after each run.
81
108
  # --seed 1234
82
109
  config.order = :random
83
110
 
84
- # The settings below are suggested to provide a good initial experience
85
- # with RSpec, but feel free to customize to your heart's content.
86
- =begin
87
- # These two settings work together to allow you to limit a spec run
88
- # to individual examples or groups you care about by tagging them with
89
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
90
- # get run.
91
- config.filter_run :focus
92
- config.run_all_when_everything_filtered = true
93
-
94
- # Allows RSpec to persist some state between runs in order to support
95
- # the `--only-failures` and `--next-failure` CLI options. We recommend
96
- # you configure your source control system to ignore this file.
97
- config.example_status_persistence_file_path = "spec/examples.txt"
111
+ # # Seed global randomization in this process using the `--seed` CLI option.
112
+ # # Setting this allows you to use `--seed` to deterministically reproduce
113
+ # # test failures related to randomization by passing the same `--seed` value
114
+ # # as the one that triggered the failure.
115
+ # Kernel.srand config.seed
98
116
 
99
- # Limits the available syntax to the non-monkey patched syntax that is
100
- # recommended. For more details, see:
101
- # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
102
- # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
103
- # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
104
- config.disable_monkey_patching!
117
+ ######################
118
+ # Start custom section
119
+ ######################
105
120
 
106
- # This setting enables warnings. It's recommended, but in some cases may
107
- # be too noisy due to issues in dependencies.
108
- config.warnings = true
109
-
110
- # Many RSpec users commonly either run the entire suite or an individual
111
- # file, and it's useful to allow more verbose output when running an
112
- # individual spec file.
113
- if config.files_to_run.one?
114
- # Use the documentation formatter for detailed output,
115
- # unless a formatter has already been configured
116
- # (e.g. via a command-line flag).
117
- config.default_formatter = 'doc'
121
+ # Use FactoryBot for test factories
122
+ config.include FactoryBot::Syntax::Methods
123
+ config.before(:suite) do
124
+ FactoryBot.find_definitions
125
+ Patch.configure do |config|
126
+ if ENV.fetch('LOCAL_SDK_TEST', false)
127
+ config.access_token = ENV.fetch('LOCAL_PATCH_API_KEY')
128
+ config.scheme = 'http'
129
+ config.host = 'api.patch.test:3000'
130
+ else
131
+ config.access_token = ENV.fetch('SANDBOX_API_KEY')
132
+ end
133
+ end
118
134
  end
119
-
120
- # Print the 10 slowest examples and example groups at the
121
- # end of the spec run, to help surface which specs are running
122
- # particularly slow.
123
- config.profile_examples = 10
124
-
125
- # Seed global randomization in this process using the `--seed` CLI option.
126
- # Setting this allows you to use `--seed` to deterministically reproduce
127
- # test failures related to randomization by passing the same `--seed` value
128
- # as the one that triggered the failure.
129
- Kernel.srand config.seed
130
- =end
135
+ ######################
136
+ # End custom section
137
+ ######################
131
138
  end