truemail-rspec 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +1 -0
- data/.github/BRANCH_NAMING_CONVENTION.md +36 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
- data/.github/{ISSUE_TEMPLATE.md → ISSUE_TEMPLATE/issue_report.md} +16 -5
- data/.github/ISSUE_TEMPLATE/question.md +22 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +3 -0
- data/.reek.yml +6 -0
- data/.rubocop.yml +217 -10
- data/CHANGELOG.md +63 -0
- data/CONTRIBUTING.md +15 -14
- data/Gemfile.lock +81 -80
- data/LICENSE.txt +1 -1
- data/README.md +58 -12
- data/lib/truemail/rspec.rb +2 -0
- data/lib/truemail/rspec/auditor_helper.rb +20 -0
- data/lib/truemail/rspec/configuration_helper.rb +2 -2
- data/lib/truemail/rspec/validator_helper.rb +11 -9
- data/lib/truemail/rspec/version.rb +1 -1
- data/truemail-rspec.gemspec +20 -11
- metadata +87 -39
data/lib/truemail/rspec.rb
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
require 'truemail/rspec/version'
|
4
4
|
require 'truemail/rspec/configuration_helper'
|
5
|
+
require 'truemail/rspec/auditor_helper'
|
5
6
|
require 'truemail/rspec/validator_helper'
|
6
7
|
|
7
8
|
module Truemail
|
8
9
|
module RSpec
|
9
10
|
include Truemail::RSpec::ConfigurationHelper
|
11
|
+
include Truemail::RSpec::AuditorHelper
|
10
12
|
include Truemail::RSpec::ValidatorHelper
|
11
13
|
end
|
12
14
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Truemail
|
4
|
+
module RSpec
|
5
|
+
module AuditorHelper
|
6
|
+
def create_auditor(
|
7
|
+
success: true,
|
8
|
+
current_host_ip: Faker::Internet.ip_v4_address,
|
9
|
+
warnings: { ip: Truemail::Audit::Ip::IPIFY_ERROR },
|
10
|
+
configuration: create_configuration
|
11
|
+
)
|
12
|
+
Truemail::Auditor.new(configuration: configuration).tap do |auditor|
|
13
|
+
auditor_result = auditor.result
|
14
|
+
auditor_result.current_host_ip = current_host_ip if success
|
15
|
+
auditor_result.warnings = warnings unless success
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -12,8 +12,8 @@ module Truemail
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def create_configuration(**configuration_settings)
|
15
|
-
configuration_settings[:verifier_email] =
|
16
|
-
Truemail::Configuration.new(&configuration_block(configuration_settings))
|
15
|
+
configuration_settings[:verifier_email] = Faker::Internet.email unless configuration_settings[:verifier_email]
|
16
|
+
Truemail::Configuration.new(&configuration_block(**configuration_settings))
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
@@ -4,17 +4,18 @@ module Truemail
|
|
4
4
|
module RSpec
|
5
5
|
module ValidatorHelper
|
6
6
|
def create_servers_list
|
7
|
-
Array.new(rand(1..4)) {
|
7
|
+
Array.new(rand(1..4)) { Faker::Internet.ip_v4_address }
|
8
8
|
end
|
9
9
|
|
10
|
-
def create_validator(
|
10
|
+
def create_validator( # rubocop:disable Metrics/ParameterLists
|
11
11
|
validation_type = nil,
|
12
|
-
email =
|
12
|
+
email = Faker::Internet.email,
|
13
13
|
mail_servers = create_servers_list,
|
14
|
+
rcptto_error: 'user not found',
|
14
15
|
success: true,
|
15
16
|
configuration: create_configuration
|
16
17
|
)
|
17
|
-
set_expected_result(validation_type, email, mail_servers, success, configuration)
|
18
|
+
set_expected_result(validation_type, email, mail_servers, success, configuration, rcptto_error)
|
18
19
|
stub_validation_layers
|
19
20
|
validator_instance = ValidatorFactory.call(validation_type, success, email, configuration)
|
20
21
|
unstub_validation_layers
|
@@ -23,14 +24,15 @@ module Truemail
|
|
23
24
|
|
24
25
|
private
|
25
26
|
|
26
|
-
attr_reader :validation_type, :email, :success, :configuration, :mail_servers
|
27
|
+
attr_reader :validation_type, :email, :success, :configuration, :mail_servers, :rcptto_error
|
27
28
|
|
28
|
-
def set_expected_result(validation_type, email, mail_servers, success, configuration)
|
29
|
+
def set_expected_result(validation_type, email, mail_servers, success, configuration, rcptto_error) # rubocop:disable Metrics/ParameterLists
|
29
30
|
@validation_type = validation_type
|
30
31
|
@email = email
|
31
32
|
@mail_servers = mail_servers
|
32
33
|
@success = success
|
33
34
|
@configuration = configuration
|
35
|
+
@rcptto_error = rcptto_error
|
34
36
|
end
|
35
37
|
|
36
38
|
def stub_validation_layers
|
@@ -41,7 +43,7 @@ module Truemail
|
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
|
-
def unstub_validation_layers
|
46
|
+
def unstub_validation_layers # rubocop:disable Metrics/AbcSize
|
45
47
|
allow_any_instance_of(Truemail::Validate::Regex).to receive(:match_regex_pattern?).and_call_original
|
46
48
|
allow(Truemail::Validate::Regex).to receive(:check).and_call_original
|
47
49
|
allow_any_instance_of(Truemail::Validate::Mx).to receive(:mx_records).and_call_original
|
@@ -74,13 +76,13 @@ module Truemail
|
|
74
76
|
response.helo = true
|
75
77
|
response.mailfrom = true
|
76
78
|
response.rcptto = false
|
77
|
-
response.errors[:rcptto] =
|
79
|
+
response.errors[:rcptto] = rcptto_error
|
78
80
|
end
|
79
81
|
|
80
82
|
request
|
81
83
|
end
|
82
84
|
|
83
|
-
def smtp_layer
|
85
|
+
def smtp_layer # rubocop:disable Metrics/AbcSize
|
84
86
|
allow(Truemail::Validate::Regex).to receive(:check).and_return(true)
|
85
87
|
allow_any_instance_of(Truemail::Validate::Mx).to receive(:mx_records).and_return(mail_servers)
|
86
88
|
allow_any_instance_of(Truemail::Validate::Mx).to receive(:domain_not_include_null_mx).and_return(true)
|
data/truemail-rspec.gemspec
CHANGED
@@ -16,6 +16,14 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.homepage = 'https://github.com/truemail-rb/truemail-rspec'
|
17
17
|
spec.license = 'MIT'
|
18
18
|
|
19
|
+
spec.metadata = {
|
20
|
+
'homepage_uri' => 'https://truemail-rb.org',
|
21
|
+
'changelog_uri' => 'https://github.com/truemail-rb/truemail-rspec/blob/master/CHANGELOG.md',
|
22
|
+
'source_code_uri' => 'https://github.com/truemail-rb/truemail-rspec',
|
23
|
+
'documentation_uri' => 'https://truemail-rb.org/truemail-rspec',
|
24
|
+
'bug_tracker_uri' => 'https://github.com/truemail-rb/truemail-rspec/issues'
|
25
|
+
}
|
26
|
+
|
19
27
|
spec.required_ruby_version = '>= 2.5.0'
|
20
28
|
|
21
29
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -24,17 +32,18 @@ Gem::Specification.new do |spec|
|
|
24
32
|
spec.require_paths = ['lib']
|
25
33
|
|
26
34
|
spec.add_development_dependency 'bundler', '~> 1.16'
|
27
|
-
spec.add_development_dependency 'bundler-audit', '~> 0.
|
28
|
-
spec.add_development_dependency '
|
29
|
-
spec.add_development_dependency '
|
30
|
-
spec.add_development_dependency 'overcommit', '~> 0.
|
31
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.
|
35
|
+
spec.add_development_dependency 'bundler-audit', '~> 0.7.0.1'
|
36
|
+
spec.add_development_dependency 'faker', '~> 2.15', '>= 2.15.1'
|
37
|
+
spec.add_development_dependency 'fasterer', '~> 0.8.3'
|
38
|
+
spec.add_development_dependency 'overcommit', '~> 0.57.0'
|
39
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.9'
|
32
40
|
spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
|
33
|
-
spec.add_development_dependency 'reek', '~>
|
34
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
35
|
-
spec.add_development_dependency 'rubocop', '~>
|
36
|
-
spec.add_development_dependency 'rubocop-
|
41
|
+
spec.add_development_dependency 'reek', '~> 6.0', '>= 6.0.2'
|
42
|
+
spec.add_development_dependency 'rspec', '~> 3.10'
|
43
|
+
spec.add_development_dependency 'rubocop', '~> 1.5', '>= 1.5.2'
|
44
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.1'
|
45
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 2.0', '>= 2.0.1'
|
37
46
|
spec.add_development_dependency 'simplecov', '~> 0.17.1'
|
38
|
-
spec.add_runtime_dependency 'rspec', '~> 3.
|
39
|
-
spec.add_runtime_dependency 'truemail', '~>
|
47
|
+
spec.add_runtime_dependency 'rspec', '~> 3.10'
|
48
|
+
spec.add_runtime_dependency 'truemail', '~> 2.2'
|
40
49
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: truemail-rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladislav Trotsenko
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -30,70 +30,76 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.7.0.1
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.7.0.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: faker
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '2.15'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 2.15.1
|
48
51
|
type: :development
|
49
52
|
prerelease: false
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
55
|
- - "~>"
|
53
56
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
57
|
+
version: '2.15'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 2.15.1
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
62
|
+
name: fasterer
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
67
|
+
version: 0.8.3
|
62
68
|
type: :development
|
63
69
|
prerelease: false
|
64
70
|
version_requirements: !ruby/object:Gem::Requirement
|
65
71
|
requirements:
|
66
72
|
- - "~>"
|
67
73
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
74
|
+
version: 0.8.3
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
76
|
name: overcommit
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - "~>"
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
81
|
+
version: 0.57.0
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - "~>"
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
88
|
+
version: 0.57.0
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: pry-byebug
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
93
|
- - "~>"
|
88
94
|
- !ruby/object:Gem::Version
|
89
|
-
version: '3.
|
95
|
+
version: '3.9'
|
90
96
|
type: :development
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
100
|
- - "~>"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '3.
|
102
|
+
version: '3.9'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: rake
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -120,56 +126,94 @@ dependencies:
|
|
120
126
|
requirements:
|
121
127
|
- - "~>"
|
122
128
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
129
|
+
version: '6.0'
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 6.0.2
|
124
133
|
type: :development
|
125
134
|
prerelease: false
|
126
135
|
version_requirements: !ruby/object:Gem::Requirement
|
127
136
|
requirements:
|
128
137
|
- - "~>"
|
129
138
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
139
|
+
version: '6.0'
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 6.0.2
|
131
143
|
- !ruby/object:Gem::Dependency
|
132
144
|
name: rspec
|
133
145
|
requirement: !ruby/object:Gem::Requirement
|
134
146
|
requirements:
|
135
147
|
- - "~>"
|
136
148
|
- !ruby/object:Gem::Version
|
137
|
-
version: '3.
|
149
|
+
version: '3.10'
|
138
150
|
type: :development
|
139
151
|
prerelease: false
|
140
152
|
version_requirements: !ruby/object:Gem::Requirement
|
141
153
|
requirements:
|
142
154
|
- - "~>"
|
143
155
|
- !ruby/object:Gem::Version
|
144
|
-
version: '3.
|
156
|
+
version: '3.10'
|
145
157
|
- !ruby/object:Gem::Dependency
|
146
158
|
name: rubocop
|
147
159
|
requirement: !ruby/object:Gem::Requirement
|
148
160
|
requirements:
|
149
161
|
- - "~>"
|
150
162
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
163
|
+
version: '1.5'
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.5.2
|
152
167
|
type: :development
|
153
168
|
prerelease: false
|
154
169
|
version_requirements: !ruby/object:Gem::Requirement
|
155
170
|
requirements:
|
156
171
|
- - "~>"
|
157
172
|
- !ruby/object:Gem::Version
|
158
|
-
version:
|
173
|
+
version: '1.5'
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: 1.5.2
|
177
|
+
- !ruby/object:Gem::Dependency
|
178
|
+
name: rubocop-performance
|
179
|
+
requirement: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - "~>"
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '1.9'
|
184
|
+
- - ">="
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: 1.9.1
|
187
|
+
type: :development
|
188
|
+
prerelease: false
|
189
|
+
version_requirements: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - "~>"
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '1.9'
|
194
|
+
- - ">="
|
195
|
+
- !ruby/object:Gem::Version
|
196
|
+
version: 1.9.1
|
159
197
|
- !ruby/object:Gem::Dependency
|
160
198
|
name: rubocop-rspec
|
161
199
|
requirement: !ruby/object:Gem::Requirement
|
162
200
|
requirements:
|
163
201
|
- - "~>"
|
164
202
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
203
|
+
version: '2.0'
|
204
|
+
- - ">="
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 2.0.1
|
166
207
|
type: :development
|
167
208
|
prerelease: false
|
168
209
|
version_requirements: !ruby/object:Gem::Requirement
|
169
210
|
requirements:
|
170
211
|
- - "~>"
|
171
212
|
- !ruby/object:Gem::Version
|
172
|
-
version: '
|
213
|
+
version: '2.0'
|
214
|
+
- - ">="
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: 2.0.1
|
173
217
|
- !ruby/object:Gem::Dependency
|
174
218
|
name: simplecov
|
175
219
|
requirement: !ruby/object:Gem::Requirement
|
@@ -190,34 +234,28 @@ dependencies:
|
|
190
234
|
requirements:
|
191
235
|
- - "~>"
|
192
236
|
- !ruby/object:Gem::Version
|
193
|
-
version: '3.
|
237
|
+
version: '3.10'
|
194
238
|
type: :runtime
|
195
239
|
prerelease: false
|
196
240
|
version_requirements: !ruby/object:Gem::Requirement
|
197
241
|
requirements:
|
198
242
|
- - "~>"
|
199
243
|
- !ruby/object:Gem::Version
|
200
|
-
version: '3.
|
244
|
+
version: '3.10'
|
201
245
|
- !ruby/object:Gem::Dependency
|
202
246
|
name: truemail
|
203
247
|
requirement: !ruby/object:Gem::Requirement
|
204
248
|
requirements:
|
205
249
|
- - "~>"
|
206
250
|
- !ruby/object:Gem::Version
|
207
|
-
version: '
|
208
|
-
- - ">="
|
209
|
-
- !ruby/object:Gem::Version
|
210
|
-
version: 1.4.1
|
251
|
+
version: '2.2'
|
211
252
|
type: :runtime
|
212
253
|
prerelease: false
|
213
254
|
version_requirements: !ruby/object:Gem::Requirement
|
214
255
|
requirements:
|
215
256
|
- - "~>"
|
216
257
|
- !ruby/object:Gem::Version
|
217
|
-
version: '
|
218
|
-
- - ">="
|
219
|
-
- !ruby/object:Gem::Version
|
220
|
-
version: 1.4.1
|
258
|
+
version: '2.2'
|
221
259
|
description: Truemail RSpec helpers
|
222
260
|
email:
|
223
261
|
- admin@bestweb.com.ua
|
@@ -227,7 +265,11 @@ extra_rdoc_files: []
|
|
227
265
|
files:
|
228
266
|
- ".circleci/config.yml"
|
229
267
|
- ".codeclimate.yml"
|
230
|
-
- ".github/
|
268
|
+
- ".github/BRANCH_NAMING_CONVENTION.md"
|
269
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
270
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
271
|
+
- ".github/ISSUE_TEMPLATE/issue_report.md"
|
272
|
+
- ".github/ISSUE_TEMPLATE/question.md"
|
231
273
|
- ".github/PULL_REQUEST_TEMPLATE.md"
|
232
274
|
- ".gitignore"
|
233
275
|
- ".overcommit.yml"
|
@@ -247,6 +289,7 @@ files:
|
|
247
289
|
- bin/console
|
248
290
|
- bin/setup
|
249
291
|
- lib/truemail/rspec.rb
|
292
|
+
- lib/truemail/rspec/auditor_helper.rb
|
250
293
|
- lib/truemail/rspec/configuration_helper.rb
|
251
294
|
- lib/truemail/rspec/validator_helper.rb
|
252
295
|
- lib/truemail/rspec/version.rb
|
@@ -254,8 +297,13 @@ files:
|
|
254
297
|
homepage: https://github.com/truemail-rb/truemail-rspec
|
255
298
|
licenses:
|
256
299
|
- MIT
|
257
|
-
metadata:
|
258
|
-
|
300
|
+
metadata:
|
301
|
+
homepage_uri: https://truemail-rb.org
|
302
|
+
changelog_uri: https://github.com/truemail-rb/truemail-rspec/blob/master/CHANGELOG.md
|
303
|
+
source_code_uri: https://github.com/truemail-rb/truemail-rspec
|
304
|
+
documentation_uri: https://truemail-rb.org/truemail-rspec
|
305
|
+
bug_tracker_uri: https://github.com/truemail-rb/truemail-rspec/issues
|
306
|
+
post_install_message:
|
259
307
|
rdoc_options: []
|
260
308
|
require_paths:
|
261
309
|
- lib
|
@@ -270,9 +318,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
318
|
- !ruby/object:Gem::Version
|
271
319
|
version: '0'
|
272
320
|
requirements: []
|
273
|
-
rubyforge_project:
|
274
|
-
rubygems_version: 2.7.
|
275
|
-
signing_key:
|
321
|
+
rubyforge_project:
|
322
|
+
rubygems_version: 2.7.3
|
323
|
+
signing_key:
|
276
324
|
specification_version: 4
|
277
325
|
summary: truemail-rspec
|
278
326
|
test_files: []
|