dvla-application_helper 5.1.5

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.
Files changed (101) hide show
  1. checksums.yaml +7 -0
  2. data/.drone.yml +481 -0
  3. data/.env.template +4 -0
  4. data/.rspec +3 -0
  5. data/.rubocop.yml +21 -0
  6. data/.ruby-gemset +1 -0
  7. data/.ruby-version +1 -0
  8. data/README.md +674 -0
  9. data/Rakefile +31 -0
  10. data/config/settings/drone-dev.yml +41 -0
  11. data/config/settings/drone-ext.yml +35 -0
  12. data/config/settings/drone-link.yml +35 -0
  13. data/config/settings/drone-perf.yml +35 -0
  14. data/config/settings/local-dev.yml +40 -0
  15. data/config/settings/local-ext.yml +35 -0
  16. data/config/settings/local-link.yml +35 -0
  17. data/config/settings/local-perf.yml +35 -0
  18. data/config/settings.yml +29 -0
  19. data/config/yarp.yml +6 -0
  20. data/functional-tests/Rakefile +74 -0
  21. data/functional-tests/chutney.yml +110 -0
  22. data/functional-tests/features/codl.feature +170 -0
  23. data/functional-tests/features/codl_image_review_states.feature +140 -0
  24. data/functional-tests/features/csudl.feature +54 -0
  25. data/functional-tests/features/csudl_image_review_states.feature +20 -0
  26. data/functional-tests/features/step_definitions/app_domain_steps.rb +213 -0
  27. data/functional-tests/features/step_definitions/application_creation_steps.rb +115 -0
  28. data/functional-tests/features/step_definitions/image_steps.rb +144 -0
  29. data/functional-tests/features/step_definitions/state_machine_steps.rb +43 -0
  30. data/functional-tests/features/support/data/artefacts.rb +27 -0
  31. data/functional-tests/features/support/data/image_helpers.rb +20 -0
  32. data/functional-tests/features/support/data/schema_helpers.rb +3 -0
  33. data/functional-tests/features/support/data/string_manipulation.rb +9 -0
  34. data/functional-tests/features/support/env.rb +25 -0
  35. data/functional-tests/features/support/hooks.rb +56 -0
  36. data/functional-tests/features/support/yarp_integration/yarp_helpers.rb +23 -0
  37. data/functional-tests/features/uodl_image_review_states.feature +244 -0
  38. data/functional-tests/features/uodl_non_processable.feature +441 -0
  39. data/functional-tests/features/uodl_processable.feature +416 -0
  40. data/lib/dvla/application_helper/builders/V1/application_builder.rb +298 -0
  41. data/lib/dvla/application_helper/builders/V1/codl_application_builder.rb +205 -0
  42. data/lib/dvla/application_helper/builders/V1/csudl_application_builder.rb +329 -0
  43. data/lib/dvla/application_helper/builders/V2/base_uodl_v2_application_builder.rb +357 -0
  44. data/lib/dvla/application_helper/builders/V2/cop_v2_application_builder.rb +59 -0
  45. data/lib/dvla/application_helper/builders/V2/dup_v2_application_builder.rb +84 -0
  46. data/lib/dvla/application_helper/builders/V2/exc_v2_application_builder.rb +55 -0
  47. data/lib/dvla/application_helper/builders/V2/rep_v2_application_builder.rb +84 -0
  48. data/lib/dvla/application_helper/builders/V2/tyr_v2_application_builder.rb +62 -0
  49. data/lib/dvla/application_helper/builders/V2/uodl_v2_application_builder.rb +278 -0
  50. data/lib/dvla/application_helper/builders/V3/base_uodl_v3_application_builder.rb +342 -0
  51. data/lib/dvla/application_helper/builders/V3/cop_v3_application_builder.rb +56 -0
  52. data/lib/dvla/application_helper/builders/V3/dup_v3_application_builder.rb +78 -0
  53. data/lib/dvla/application_helper/builders/V3/exc_v3_application_builder.rb +56 -0
  54. data/lib/dvla/application_helper/builders/V3/rep_v3_application_builder.rb +81 -0
  55. data/lib/dvla/application_helper/builders/V3/tyr_v3_application_builder.rb +59 -0
  56. data/lib/dvla/application_helper/builders/dup_rep_builder_mixin.rb +71 -0
  57. data/lib/dvla/application_helper/builders/photo_builder_mixin.rb +49 -0
  58. data/lib/dvla/application_helper/builders/photo_signature_builder_mixin.rb +68 -0
  59. data/lib/dvla/application_helper/configuration.rb +37 -0
  60. data/lib/dvla/application_helper/constants.rb +21 -0
  61. data/lib/dvla/application_helper/enums/review_state.rb +30 -0
  62. data/lib/dvla/application_helper/enums/unable_to_prove_licence_possession_reasons.rb +8 -0
  63. data/lib/dvla/application_helper/factories/address.rb +21 -0
  64. data/lib/dvla/application_helper/factories/application_details.rb +353 -0
  65. data/lib/dvla/application_helper/factories/casework.rb +7 -0
  66. data/lib/dvla/application_helper/factories/csudl_photo_signature_image.rb +156 -0
  67. data/lib/dvla/application_helper/factories/csudl_photo_signature_images.rb +85 -0
  68. data/lib/dvla/application_helper/factories/organ_donor.rb +32 -0
  69. data/lib/dvla/application_helper/factories/person.rb +73 -0
  70. data/lib/dvla/application_helper/factories/photo_image.rb +147 -0
  71. data/lib/dvla/application_helper/factories/photo_images.rb +183 -0
  72. data/lib/dvla/application_helper/factories/photo_signature_image.rb +158 -0
  73. data/lib/dvla/application_helper/factories/photo_signature_images.rb +64 -0
  74. data/lib/dvla/application_helper/fixtures/photo/comparison_image.jpeg +0 -0
  75. data/lib/dvla/application_helper/fixtures/photo/passport_image.jpg +0 -0
  76. data/lib/dvla/application_helper/fixtures/photo/photocard_back.jpg +0 -0
  77. data/lib/dvla/application_helper/fixtures/photo/photocard_front.jpg +0 -0
  78. data/lib/dvla/application_helper/fixtures/photo/rejected_user_uploaded_image.jpeg +0 -0
  79. data/lib/dvla/application_helper/fixtures/photo/user_uploaded_image.jpg +0 -0
  80. data/lib/dvla/application_helper/fixtures/signature/csudl_signature_image.tiff +0 -0
  81. data/lib/dvla/application_helper/fixtures/signature/passport_image.jpg +0 -0
  82. data/lib/dvla/application_helper/fixtures/signature/rejected_user_uploaded_image.jpg +0 -0
  83. data/lib/dvla/application_helper/fixtures/signature/user_uploaded_image.jpg +0 -0
  84. data/lib/dvla/application_helper/processors/application_status.rb +45 -0
  85. data/lib/dvla/application_helper/processors/application_task.rb +301 -0
  86. data/lib/dvla/application_helper/services/application_diary.rb +123 -0
  87. data/lib/dvla/application_helper/services/application_domain.rb +239 -0
  88. data/lib/dvla/application_helper/services/application_process_engine.rb +120 -0
  89. data/lib/dvla/application_helper/services/check_aws_credentials.rb +24 -0
  90. data/lib/dvla/application_helper/services/driving_licence_channel_api.rb +67 -0
  91. data/lib/dvla/application_helper/services/image_service.rb +116 -0
  92. data/lib/dvla/application_helper/services/image_utility.rb +82 -0
  93. data/lib/dvla/application_helper/services/state_machine_helpers.rb +146 -0
  94. data/lib/dvla/application_helper/version.rb +5 -0
  95. data/lib/dvla/application_helper.rb +92 -0
  96. data/renovate.json +4 -0
  97. data/scripts/application-login.sh +56 -0
  98. data/scripts/drone-aws-login.sh +18 -0
  99. data/scripts/seed_application.rb +268 -0
  100. data/sonar-project.properties +4 -0
  101. metadata +343 -0
@@ -0,0 +1,268 @@
1
+ require './lib/dvla/application_helper.rb'
2
+ require 'json'
3
+ require 'bundler/setup'
4
+ require 'rspec'
5
+ include RSpec::Matchers
6
+ Bundler.require
7
+
8
+ def environment
9
+ ENV.fetch('ENVIRONMENT')
10
+ end
11
+
12
+ def is_dev_environment
13
+ environment.include?('dev')
14
+ end
15
+
16
+ DVLA::Application.config do |config|
17
+ config.environment = environment
18
+ end
19
+
20
+ DVLA::Customer::Helper.configure do |attr|
21
+ attr.environment = environment
22
+ attr.yaml_override_path = "./config/settings/#{environment}"
23
+ end
24
+
25
+ ARGUMENT_PREFIX = 'build_'.freeze
26
+
27
+ def execute
28
+ options = extract_arguments
29
+ build_options = options[:build_options]
30
+ validate_options(build_options)
31
+ DVLA::Application.logger.info("Creating #{options[:type]} application in #{environment} with build options: #{build_options}")
32
+
33
+ builder = case options[:type]
34
+ when '', nil, 'uodl'
35
+ DVLA::Application::ApplicationBuilder.new
36
+ when 'uodl-v2'
37
+ DVLA::Application::UODLV2ApplicationBuilder.new
38
+ when 'cop'
39
+ DVLA::Application::COPV2ApplicationBuilder.new
40
+ when 'exc'
41
+ DVLA::Application::EXCV2ApplicationBuilder.new
42
+ when 'dup'
43
+ DVLA::Application::DUPV2ApplicationBuilder.new
44
+ when 'rep'
45
+ DVLA::Application::REPV2ApplicationBuilder.new
46
+ when 'codl'
47
+ DVLA::Application::CODLApplicationBuilder.new
48
+ when 'csudl'
49
+ DVLA::Application::CSUDLApplicationBuilder.new
50
+ when 'tyr-v3'
51
+ DVLA::Application::TYRV3ApplicationBuilder.new
52
+ when 'cop-v3'
53
+ DVLA::Application::COPV3ApplicationBuilder.new
54
+ when 'exc-v3'
55
+ DVLA::Application::EXCV3ApplicationBuilder.new
56
+ when 'dup-v3'
57
+ DVLA::Application::DUPV3ApplicationBuilder.new
58
+ when 'rep-v3'
59
+ DVLA::Application::REPV3ApplicationBuilder.new
60
+ else
61
+ raise "Invalid '#{options[:type]}' application type"
62
+ end
63
+
64
+ apply_build_options!(builder, build_options)
65
+
66
+ app = if is_dev_environment
67
+ create_app_dev(builder)
68
+ else
69
+ create_app_link(builder)
70
+ end
71
+ DVLA::Application.logger.info("customerID = #{app.customer_id.inspect.green}")
72
+ DVLA::Application.logger.info("applicationID = #{app.application_id.green}")
73
+ end
74
+
75
+ def validate_options(build_options)
76
+ is_non_processable = build_options.has_key?(:non_processable) || !build_options.has_key?(:processable)
77
+ if is_non_processable && !is_dev_environment
78
+ raise 'Non processable applications should be created just in a dev environment'
79
+ end
80
+
81
+ forbidden_build_options_in_link = %i[with_customer_id with_driver_id with_applicant]
82
+ using_forbidden_option = forbidden_build_options_in_link.any? { |forbidden| build_options.has_key?(forbidden) }
83
+ if !is_dev_environment && using_forbidden_option
84
+ raise 'Specified build option is forbidden for use in Link'
85
+ end
86
+ end
87
+
88
+ # Extracts the environment variables starting with "build_" as options for seeding application
89
+ # "build_type" is the application type to build
90
+ # All the remaining env variables are transformed to build options, e.g. "build_processable" will set the processable build option
91
+ def extract_arguments
92
+ arguments = ENV.select { |var| var.start_with?(ARGUMENT_PREFIX) }
93
+ arguments.transform_keys! { |var_name| var_name.delete_prefix(ARGUMENT_PREFIX) }.transform_keys!(&:to_sym)
94
+ build_options = arguments.reject { |arg| arg == :type }.transform_values { |val| parse_build_option_values(val) }
95
+ {
96
+ type: arguments[:type],
97
+ build_options:,
98
+ }
99
+ end
100
+
101
+ # Parses the values of the build options
102
+ # An empty string or a dash will be `nil` and will result in a build option with no parameters
103
+ # A string of ":val" will be transformed to a normal symbol `:val`
104
+ # If the string is a valid json it is parsed as so
105
+ # Otherwise any other value is kept as a normal string
106
+ def parse_build_option_values(option_value)
107
+ return nil if ['', '-'].include?(option_value)
108
+ return [option_value.slice(1..-1).to_sym] if option_value.start_with?(':')
109
+
110
+ parsed_option_values = option_value
111
+ begin
112
+ parsed_option_values = JSON.parse(option_value)
113
+ rescue JSON::ParserError, TypeError
114
+ # When JSON parsing fails we treat value as a normal string
115
+ end
116
+
117
+ [parsed_option_values]
118
+ end
119
+
120
+ # Calls a method of the builder for each build_option specified, passing the relevant parameter
121
+ def apply_build_options!(builder, build_options)
122
+ build_options.each_pair do |build_option, option_params|
123
+ unless builder.respond_to?(build_option)
124
+ DVLA::Application.logger.error("Build option '#{build_option}' is not valid for the specified application type")
125
+ raise "Invalid '#{build_option}' build option"
126
+ end
127
+ if option_params.nil?
128
+ builder.send build_option
129
+ else
130
+ builder.send build_option, *option_params
131
+ end
132
+ end
133
+ builder
134
+ end
135
+
136
+ # create an application in the dev space
137
+ # takes the builder specified by the script invocation
138
+ def create_app_dev(builder)
139
+ app = builder.build
140
+ generate_customer_using_application_data_hash(app.to_hash) if app.to_hash.has_key?(:customer_id)
141
+ app
142
+ end
143
+
144
+ # create an application in the link space
145
+ # takes the builder specified by the script invocation
146
+ def create_app_link(builder)
147
+ customer_info = if paper_licence_application(builder)
148
+ seed_driver_with_paper
149
+ else
150
+ seed_driver
151
+ end
152
+
153
+ applicant = DVLA::Application::PersonFactory.new.build_person_using_identity(customer_info[:identity]).to_applicant
154
+
155
+ if builder.instance_of?(DVLA::Application::CODLApplicationBuilder)
156
+ builder
157
+ .with_customer_id(customer_info[:customer_id])
158
+ .with_applicant(applicant)
159
+ .build
160
+ else
161
+ builder
162
+ .with_customer_id(customer_info[:customer_id])
163
+ .with_driver_id(customer_info[:driver_id])
164
+ .with_applicant(applicant)
165
+ .build
166
+ end
167
+ end
168
+
169
+ # seed a driver based on the DriverRecord model in Customer Account
170
+ def seed_driver
171
+ driver_record = DVLA::Customer::Helper::Models::DriverRecord.new
172
+ response = DVLA::Customer::Helper::Seeders::Driver.seed_driver_with_customer_account(driver_record:)
173
+ {
174
+ customer_id: response[:customer_id],
175
+ driver_id: driver_record.record[:driverId],
176
+ identity: response[:driver_record].identity,
177
+ }
178
+ end
179
+
180
+ # seed a paper-based driver based on the DriverRecord model in Customer Account
181
+ def seed_driver_with_paper
182
+ driver_record = DVLA::Customer::Helper::Models::DriverRecord.new(identity: create_paper_identity)
183
+ response = DVLA::Customer::Helper::Seeders::Driver.seed_customer_with_paper_licence(driver_record:)
184
+ {
185
+ customer_id: response[:customer_id],
186
+ driver_id: driver_record.record[:driverId],
187
+ identity: response[:driver_record].identity,
188
+ }
189
+ end
190
+
191
+ # create a valid identity that can be used for a paper-based customer
192
+ def create_paper_identity
193
+ identity = DVLA::Poirot.create_identity_builder
194
+ .younger_than(years: 69)
195
+ .older_than(years: 28)
196
+ .experian_pass
197
+ .alive
198
+ .gbr_citizen
199
+ .dwp_pass
200
+ .hmpo_pass
201
+ .home_office_pass
202
+ .has_valid_photo
203
+ .has_valid_signature
204
+ .domestic_gb_address
205
+ .country_of_birth(%w(England Wales Scotland).sample)
206
+
207
+ built = identity.build
208
+ begin
209
+ built.save
210
+ rescue StandardError => e
211
+ puts "Failed to save poirot record: #{e}".red
212
+ raise e
213
+ end
214
+ built
215
+ end
216
+
217
+ def generate_customer_using_application_data_hash(application, with_account_deleted: false)
218
+ customer_id = application[:customerId]
219
+
220
+ retrieve_customer_request = {
221
+ customerId: customer_id,
222
+ }
223
+
224
+ begin
225
+ retrieve_customer_response = DVLA::Customer::Helper::Service::CustomerDomain.retrieve_customer(request: retrieve_customer_request)
226
+ existing_customer = retrieve_customer_response.body if retrieve_customer_response.code == 200
227
+ rescue StandardError
228
+ # Catching 404 errors, the existing_customer variable will be nil
229
+ end
230
+
231
+ unless existing_customer.nil?
232
+ DVLA::Application.logger.info("Customer with id '#{customer_id.green}' already exists")
233
+ return
234
+ end
235
+
236
+ create_customer_request = {
237
+ customerId: customer_id,
238
+ emailAddress: application[:data][:applicant][:emailAddress],
239
+ identityId: SecureRandom.uuid,
240
+ lastName: application[:data][:applicant][:lastName],
241
+ dateOfBirth: application[:data][:applicant][:dateOfBirth],
242
+ address: application[:data][:applicant][:address],
243
+ contactPreferences: [
244
+ {
245
+ contactType: 'Default',
246
+ contactPreference: 'Email',
247
+ consentDate: '2021-01-01',
248
+ },
249
+ ],
250
+ }
251
+ if with_account_deleted
252
+ create_customer_request.delete(:emailAddress)
253
+ create_customer_request.delete(:identityId)
254
+ end
255
+
256
+ DVLA::Customer::Helper::Service::CustomerDomain.create_customer(request: create_customer_request)
257
+ end
258
+
259
+ def paper_licence_application(builder)
260
+ builder.instance_of?(DVLA::Application::EXCV2ApplicationBuilder) ||
261
+ (builder.instance_of?(DVLA::Application::REPV2ApplicationBuilder) && builder.get_eligible_paper_to_plastic == true) ||
262
+ (builder.instance_of?(DVLA::Application::DUPV2ApplicationBuilder) && builder.get_eligible_paper_to_plastic == true) ||
263
+ builder.instance_of?(DVLA::Application::EXCV3ApplicationBuilder) ||
264
+ (builder.instance_of?(DVLA::Application::REPV3ApplicationBuilder) && builder.get_eligible_paper_to_plastic == true) ||
265
+ (builder.instance_of?(DVLA::Application::DUPV3ApplicationBuilder) && builder.get_eligible_paper_to_plastic == true)
266
+ end
267
+
268
+ execute
@@ -0,0 +1,4 @@
1
+ sonar.projectBaseDir=./
2
+ sonar.ruby.coverage.reportPaths=coverage/coverage.json
3
+ sonar.sources=lib
4
+ sonar.tests=spec
metadata ADDED
@@ -0,0 +1,343 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dvla-application_helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 5.1.5
5
+ platform: ruby
6
+ authors:
7
+ - Paul Lewis
8
+ - David Sambucci
9
+ - Shaun Beynon-Thomas
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2025-07-07 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: aws-sdk-states
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - "~>"
20
+ - !ruby/object:Gem::Version
21
+ version: '1.64'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - "~>"
27
+ - !ruby/object:Gem::Version
28
+ version: '1.64'
29
+ - !ruby/object:Gem::Dependency
30
+ name: block_repeater
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - "~>"
34
+ - !ruby/object:Gem::Version
35
+ version: '1.1'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.1'
43
+ - !ruby/object:Gem::Dependency
44
+ name: config
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '5.5'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '5.5'
57
+ - !ruby/object:Gem::Dependency
58
+ name: dvla-application-diary-openapi-client
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '2.3'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "~>"
69
+ - !ruby/object:Gem::Version
70
+ version: '2.3'
71
+ - !ruby/object:Gem::Dependency
72
+ name: dvla-application-domain-openapi-client
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '5.10'
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '5.10'
85
+ - !ruby/object:Gem::Dependency
86
+ name: dvla-application-process-engine-openapi-client
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '2.5'
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - "~>"
97
+ - !ruby/object:Gem::Version
98
+ version: '2.5'
99
+ - !ruby/object:Gem::Dependency
100
+ name: dvla-aws
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 2.0.0
106
+ type: :runtime
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: 2.0.0
113
+ - !ruby/object:Gem::Dependency
114
+ name: dvla-driving-licence-channel-api-openapi-client
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '2.7'
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: '2.7'
127
+ - !ruby/object:Gem::Dependency
128
+ name: dvla-herodotus
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '2.0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '2.0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: dvla-poirot
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: '3.0'
148
+ type: :runtime
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: '3.0'
155
+ - !ruby/object:Gem::Dependency
156
+ name: faker
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: '3.4'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: '3.4'
169
+ - !ruby/object:Gem::Dependency
170
+ name: faker_maker
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: '3.0'
176
+ type: :runtime
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: '3.0'
183
+ - !ruby/object:Gem::Dependency
184
+ name: httpx
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '1.2'
190
+ type: :runtime
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - "~>"
195
+ - !ruby/object:Gem::Version
196
+ version: '1.2'
197
+ - !ruby/object:Gem::Dependency
198
+ name: mime-types
199
+ requirement: !ruby/object:Gem::Requirement
200
+ requirements:
201
+ - - "~>"
202
+ - !ruby/object:Gem::Version
203
+ version: '3.5'
204
+ type: :runtime
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ requirements:
208
+ - - "~>"
209
+ - !ruby/object:Gem::Version
210
+ version: '3.5'
211
+ description: Generates fake application data that can be used in testing
212
+ email:
213
+ - pauldavid.lewis@dvla.gov.uk
214
+ - david.sambucci.contractor@dvla.gov.uk
215
+ - shaun.beynon-thomas.contractor@dvla.gov.uk
216
+ executables: []
217
+ extensions: []
218
+ extra_rdoc_files: []
219
+ files:
220
+ - ".drone.yml"
221
+ - ".env.template"
222
+ - ".rspec"
223
+ - ".rubocop.yml"
224
+ - ".ruby-gemset"
225
+ - ".ruby-version"
226
+ - README.md
227
+ - Rakefile
228
+ - config/settings.yml
229
+ - config/settings/drone-dev.yml
230
+ - config/settings/drone-ext.yml
231
+ - config/settings/drone-link.yml
232
+ - config/settings/drone-perf.yml
233
+ - config/settings/local-dev.yml
234
+ - config/settings/local-ext.yml
235
+ - config/settings/local-link.yml
236
+ - config/settings/local-perf.yml
237
+ - config/yarp.yml
238
+ - functional-tests/Rakefile
239
+ - functional-tests/chutney.yml
240
+ - functional-tests/features/codl.feature
241
+ - functional-tests/features/codl_image_review_states.feature
242
+ - functional-tests/features/csudl.feature
243
+ - functional-tests/features/csudl_image_review_states.feature
244
+ - functional-tests/features/step_definitions/app_domain_steps.rb
245
+ - functional-tests/features/step_definitions/application_creation_steps.rb
246
+ - functional-tests/features/step_definitions/image_steps.rb
247
+ - functional-tests/features/step_definitions/state_machine_steps.rb
248
+ - functional-tests/features/support/data/artefacts.rb
249
+ - functional-tests/features/support/data/image_helpers.rb
250
+ - functional-tests/features/support/data/schema_helpers.rb
251
+ - functional-tests/features/support/data/string_manipulation.rb
252
+ - functional-tests/features/support/env.rb
253
+ - functional-tests/features/support/hooks.rb
254
+ - functional-tests/features/support/yarp_integration/yarp_helpers.rb
255
+ - functional-tests/features/uodl_image_review_states.feature
256
+ - functional-tests/features/uodl_non_processable.feature
257
+ - functional-tests/features/uodl_processable.feature
258
+ - lib/dvla/application_helper.rb
259
+ - lib/dvla/application_helper/builders/V1/application_builder.rb
260
+ - lib/dvla/application_helper/builders/V1/codl_application_builder.rb
261
+ - lib/dvla/application_helper/builders/V1/csudl_application_builder.rb
262
+ - lib/dvla/application_helper/builders/V2/base_uodl_v2_application_builder.rb
263
+ - lib/dvla/application_helper/builders/V2/cop_v2_application_builder.rb
264
+ - lib/dvla/application_helper/builders/V2/dup_v2_application_builder.rb
265
+ - lib/dvla/application_helper/builders/V2/exc_v2_application_builder.rb
266
+ - lib/dvla/application_helper/builders/V2/rep_v2_application_builder.rb
267
+ - lib/dvla/application_helper/builders/V2/tyr_v2_application_builder.rb
268
+ - lib/dvla/application_helper/builders/V2/uodl_v2_application_builder.rb
269
+ - lib/dvla/application_helper/builders/V3/base_uodl_v3_application_builder.rb
270
+ - lib/dvla/application_helper/builders/V3/cop_v3_application_builder.rb
271
+ - lib/dvla/application_helper/builders/V3/dup_v3_application_builder.rb
272
+ - lib/dvla/application_helper/builders/V3/exc_v3_application_builder.rb
273
+ - lib/dvla/application_helper/builders/V3/rep_v3_application_builder.rb
274
+ - lib/dvla/application_helper/builders/V3/tyr_v3_application_builder.rb
275
+ - lib/dvla/application_helper/builders/dup_rep_builder_mixin.rb
276
+ - lib/dvla/application_helper/builders/photo_builder_mixin.rb
277
+ - lib/dvla/application_helper/builders/photo_signature_builder_mixin.rb
278
+ - lib/dvla/application_helper/configuration.rb
279
+ - lib/dvla/application_helper/constants.rb
280
+ - lib/dvla/application_helper/enums/review_state.rb
281
+ - lib/dvla/application_helper/enums/unable_to_prove_licence_possession_reasons.rb
282
+ - lib/dvla/application_helper/factories/address.rb
283
+ - lib/dvla/application_helper/factories/application_details.rb
284
+ - lib/dvla/application_helper/factories/casework.rb
285
+ - lib/dvla/application_helper/factories/csudl_photo_signature_image.rb
286
+ - lib/dvla/application_helper/factories/csudl_photo_signature_images.rb
287
+ - lib/dvla/application_helper/factories/organ_donor.rb
288
+ - lib/dvla/application_helper/factories/person.rb
289
+ - lib/dvla/application_helper/factories/photo_image.rb
290
+ - lib/dvla/application_helper/factories/photo_images.rb
291
+ - lib/dvla/application_helper/factories/photo_signature_image.rb
292
+ - lib/dvla/application_helper/factories/photo_signature_images.rb
293
+ - lib/dvla/application_helper/fixtures/photo/comparison_image.jpeg
294
+ - lib/dvla/application_helper/fixtures/photo/passport_image.jpg
295
+ - lib/dvla/application_helper/fixtures/photo/photocard_back.jpg
296
+ - lib/dvla/application_helper/fixtures/photo/photocard_front.jpg
297
+ - lib/dvla/application_helper/fixtures/photo/rejected_user_uploaded_image.jpeg
298
+ - lib/dvla/application_helper/fixtures/photo/user_uploaded_image.jpg
299
+ - lib/dvla/application_helper/fixtures/signature/csudl_signature_image.tiff
300
+ - lib/dvla/application_helper/fixtures/signature/passport_image.jpg
301
+ - lib/dvla/application_helper/fixtures/signature/rejected_user_uploaded_image.jpg
302
+ - lib/dvla/application_helper/fixtures/signature/user_uploaded_image.jpg
303
+ - lib/dvla/application_helper/processors/application_status.rb
304
+ - lib/dvla/application_helper/processors/application_task.rb
305
+ - lib/dvla/application_helper/services/application_diary.rb
306
+ - lib/dvla/application_helper/services/application_domain.rb
307
+ - lib/dvla/application_helper/services/application_process_engine.rb
308
+ - lib/dvla/application_helper/services/check_aws_credentials.rb
309
+ - lib/dvla/application_helper/services/driving_licence_channel_api.rb
310
+ - lib/dvla/application_helper/services/image_service.rb
311
+ - lib/dvla/application_helper/services/image_utility.rb
312
+ - lib/dvla/application_helper/services/state_machine_helpers.rb
313
+ - lib/dvla/application_helper/version.rb
314
+ - renovate.json
315
+ - scripts/application-login.sh
316
+ - scripts/drone-aws-login.sh
317
+ - scripts/seed_application.rb
318
+ - sonar-project.properties
319
+ homepage: https://www.dvla.gov.uk
320
+ licenses:
321
+ - MIT
322
+ metadata:
323
+ homepage_uri: https://www.dvla.gov.uk
324
+ post_install_message:
325
+ rdoc_options: []
326
+ require_paths:
327
+ - lib
328
+ required_ruby_version: !ruby/object:Gem::Requirement
329
+ requirements:
330
+ - - "~>"
331
+ - !ruby/object:Gem::Version
332
+ version: '3.0'
333
+ required_rubygems_version: !ruby/object:Gem::Requirement
334
+ requirements:
335
+ - - ">="
336
+ - !ruby/object:Gem::Version
337
+ version: '0'
338
+ requirements: []
339
+ rubygems_version: 3.5.22
340
+ signing_key:
341
+ specification_version: 4
342
+ summary: Gem to generate and submit application data
343
+ test_files: []