metasploit-credential 2.0.14 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/lib/metasploit/credential/engine.rb +2 -2
- data/lib/metasploit/credential/version.rb +3 -3
- data/spec/dummy/config/database.yml +2 -2
- data/spec/factories/metasploit/credential/blank_usernames.rb +1 -1
- data/spec/factories/metasploit/credential/cores.rb +6 -6
- data/spec/factories/metasploit/credential/importer/cores.rb +2 -2
- data/spec/factories/metasploit/credential/importer/pwdumps.rb +3 -3
- data/spec/factories/metasploit/credential/importer/zips.rb +8 -8
- data/spec/factories/metasploit/credential/logins.rb +3 -3
- data/spec/factories/metasploit/credential/nonreplayable_hashes.rb +1 -1
- data/spec/factories/metasploit/credential/ntlm_hashes.rb +1 -1
- data/spec/factories/metasploit/credential/origin/imports.rb +1 -1
- data/spec/factories/metasploit/credential/origin/manuals.rb +1 -1
- data/spec/factories/metasploit/credential/origin/services.rb +1 -1
- data/spec/factories/metasploit/credential/origin/sessions.rb +1 -1
- data/spec/factories/metasploit/credential/password_hashes.rb +1 -1
- data/spec/factories/metasploit/credential/passwords.rb +1 -1
- data/spec/factories/metasploit/credential/postgres_md5.rb +1 -1
- data/spec/factories/metasploit/credential/privates.rb +1 -1
- data/spec/factories/metasploit/credential/publics.rb +2 -2
- data/spec/factories/metasploit/credential/realms.rb +1 -1
- data/spec/factories/metasploit/credential/replayable_hashes.rb +1 -1
- data/spec/factories/metasploit/credential/ssh_keys.rb +1 -1
- data/spec/factories/metasploit/credential/usernames.rb +1 -1
- data/spec/lib/metasploit/credential/creation_spec.rb +52 -52
- data/spec/lib/metasploit/credential/exporter/core_spec.rb +3 -3
- data/spec/lib/metasploit/credential/exporter/pwdump_spec.rb +11 -11
- data/spec/lib/metasploit/credential/importer/core_spec.rb +19 -19
- data/spec/lib/metasploit/credential/importer/multi_spec.rb +4 -4
- data/spec/lib/metasploit/credential/importer/pwdump_spec.rb +3 -3
- data/spec/lib/metasploit/credential/importer/zip_spec.rb +3 -3
- data/spec/lib/metasploit/credential/migrator_spec.rb +22 -22
- data/spec/models/metasploit/credential/core_spec.rb +42 -42
- data/spec/models/metasploit/credential/login_spec.rb +20 -20
- data/spec/models/metasploit/credential/nonreplayable_hash_spec.rb +1 -1
- data/spec/models/metasploit/credential/ntlm_hash_spec.rb +5 -5
- data/spec/models/metasploit/credential/origin/import_spec.rb +1 -1
- data/spec/models/metasploit/credential/origin/manual_spec.rb +1 -1
- data/spec/models/metasploit/credential/origin/service_spec.rb +3 -3
- data/spec/models/metasploit/credential/origin/session_spec.rb +2 -2
- data/spec/models/metasploit/credential/password_hash_spec.rb +1 -1
- data/spec/models/metasploit/credential/password_spec.rb +1 -1
- data/spec/models/metasploit/credential/postgres_md5_spec.rb +3 -3
- data/spec/models/metasploit/credential/private_spec.rb +6 -6
- data/spec/models/metasploit/credential/public_spec.rb +1 -1
- data/spec/models/metasploit/credential/realm_spec.rb +9 -9
- data/spec/models/metasploit/credential/replayable_hash_spec.rb +1 -1
- data/spec/models/metasploit/credential/ssh_key_spec.rb +9 -27
- data/spec/models/metasploit/credential/username_spec.rb +1 -1
- data/spec/models/metasploit_data_models/search/visitor/relation_spec.rb +30 -30
- data/spec/support/shared/contexts/metasploit/credential/exporter/export_objects.rb +18 -18
- data/spec/support/shared/examples/core_validations.rb +38 -38
- metadata +18 -4
- metadata.gz.sig +0 -0
@@ -13,7 +13,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
13
13
|
|
14
14
|
|
15
15
|
let(:login) do
|
16
|
-
|
16
|
+
FactoryBot.build(
|
17
17
|
:metasploit_credential_login,
|
18
18
|
access_level: written_access_level
|
19
19
|
)
|
@@ -87,14 +87,14 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
87
87
|
|
88
88
|
context 'metasploit_credential_login' do
|
89
89
|
subject(:metasploit_credential_login) do
|
90
|
-
|
90
|
+
FactoryBot.build(:metasploit_credential_login)
|
91
91
|
end
|
92
92
|
|
93
93
|
it { is_expected.to be_valid }
|
94
94
|
|
95
95
|
context '#status' do
|
96
96
|
subject(:metasploit_credential_login) do
|
97
|
-
|
97
|
+
FactoryBot.build(
|
98
98
|
:metasploit_credential_login,
|
99
99
|
status: status
|
100
100
|
)
|
@@ -185,7 +185,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
185
185
|
before(:example) do
|
186
186
|
# validate_uniqueness_of will use Metasploit::Credential::Login#service_id and not trigger service_id non-null
|
187
187
|
# constraint.
|
188
|
-
|
188
|
+
FactoryBot.create(
|
189
189
|
:metasploit_credential_login
|
190
190
|
)
|
191
191
|
end
|
@@ -208,7 +208,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
208
208
|
#
|
209
209
|
|
210
210
|
let(:login) do
|
211
|
-
|
211
|
+
FactoryBot.build(
|
212
212
|
:metasploit_credential_login,
|
213
213
|
last_attempted_at: last_attempted_at,
|
214
214
|
status: status
|
@@ -298,7 +298,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
298
298
|
end
|
299
299
|
|
300
300
|
let(:login) do
|
301
|
-
|
301
|
+
FactoryBot.build(
|
302
302
|
:metasploit_credential_login,
|
303
303
|
core: core,
|
304
304
|
service: service
|
@@ -315,13 +315,13 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
315
315
|
|
316
316
|
context 'with #core' do
|
317
317
|
let(:core) do
|
318
|
-
|
318
|
+
FactoryBot.build(:metasploit_credential_core)
|
319
319
|
end
|
320
320
|
|
321
321
|
context 'with Metasploit::Credential::Core#workspace' do
|
322
322
|
context 'with #service' do
|
323
323
|
let(:service) do
|
324
|
-
|
324
|
+
FactoryBot.build(
|
325
325
|
:mdm_service,
|
326
326
|
host: host
|
327
327
|
)
|
@@ -329,7 +329,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
329
329
|
|
330
330
|
context 'with Mdm::Service#host' do
|
331
331
|
let(:host) do
|
332
|
-
|
332
|
+
FactoryBot.build(
|
333
333
|
:mdm_host,
|
334
334
|
workspace: workspace
|
335
335
|
)
|
@@ -346,7 +346,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
346
346
|
|
347
347
|
context 'different than #workspace' do
|
348
348
|
let(:workspace) do
|
349
|
-
|
349
|
+
FactoryBot.build(:mdm_workspace)
|
350
350
|
end
|
351
351
|
|
352
352
|
it { is_expected.to include(error) }
|
@@ -389,7 +389,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
389
389
|
|
390
390
|
context 'with #service' do
|
391
391
|
let(:service) do
|
392
|
-
|
392
|
+
FactoryBot.build(
|
393
393
|
:mdm_service,
|
394
394
|
host: host
|
395
395
|
)
|
@@ -397,7 +397,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
397
397
|
|
398
398
|
context 'with Mdm::Service#host' do
|
399
399
|
let(:host) do
|
400
|
-
|
400
|
+
FactoryBot.build(
|
401
401
|
:mdm_host,
|
402
402
|
workspace: workspace
|
403
403
|
)
|
@@ -405,7 +405,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
405
405
|
|
406
406
|
context 'with Mdm::Host#workspace' do
|
407
407
|
let(:workspace) do
|
408
|
-
|
408
|
+
FactoryBot.build(:mdm_workspace)
|
409
409
|
end
|
410
410
|
|
411
411
|
it { is_expected.to include(error) }
|
@@ -446,7 +446,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
446
446
|
|
447
447
|
context 'with #service' do
|
448
448
|
let(:service) do
|
449
|
-
|
449
|
+
FactoryBot.build(
|
450
450
|
:mdm_service,
|
451
451
|
host: host
|
452
452
|
)
|
@@ -454,7 +454,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
454
454
|
|
455
455
|
context 'with Mdm::Service#host' do
|
456
456
|
let(:host) do
|
457
|
-
|
457
|
+
FactoryBot.build(
|
458
458
|
:mdm_host,
|
459
459
|
workspace: workspace
|
460
460
|
)
|
@@ -462,7 +462,7 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
462
462
|
|
463
463
|
context 'with Mdm::Host#workspace' do
|
464
464
|
let(:workspace) do
|
465
|
-
|
465
|
+
FactoryBot.build(:mdm_workspace)
|
466
466
|
end
|
467
467
|
|
468
468
|
it { is_expected.to include(error) }
|
@@ -501,11 +501,11 @@ RSpec.describe Metasploit::Credential::Login, type: :model do
|
|
501
501
|
|
502
502
|
|
503
503
|
context "::in_workspace_with_hosts_and_services" do
|
504
|
-
let(:service){
|
505
|
-
let(:origin){
|
506
|
-
let(:core){
|
504
|
+
let(:service){ FactoryBot.create :mdm_service }
|
505
|
+
let(:origin){ FactoryBot.create :metasploit_credential_origin_service, service: service}
|
506
|
+
let(:core){ FactoryBot.create :metasploit_credential_core, workspace: service.host.workspace, origin: origin}
|
507
507
|
|
508
|
-
subject(:login){
|
508
|
+
subject(:login){ FactoryBot.create :metasploit_credential_login, core: core}
|
509
509
|
|
510
510
|
it 'should find the right objects' do
|
511
511
|
expect(Metasploit::Credential::Login.in_workspace_including_hosts_and_services(service.host.workspace)).to include(login)
|
@@ -6,7 +6,7 @@ RSpec.describe Metasploit::Credential::NonreplayableHash, type: :model do
|
|
6
6
|
context 'factories' do
|
7
7
|
context 'metasploit_credential_nonreplayable_hash' do
|
8
8
|
subject(:metasploit_credential_nonreplayable_hash) do
|
9
|
-
|
9
|
+
FactoryBot.build(:metasploit_credential_nonreplayable_hash)
|
10
10
|
end
|
11
11
|
|
12
12
|
it { is_expected.to be_valid }
|
@@ -84,7 +84,7 @@ RSpec.describe Metasploit::Credential::NTLMHash, type: :model do
|
|
84
84
|
end
|
85
85
|
|
86
86
|
let(:ntlm_hash) do
|
87
|
-
|
87
|
+
FactoryBot.build(
|
88
88
|
:metasploit_credential_ntlm_hash,
|
89
89
|
data: given_data
|
90
90
|
)
|
@@ -128,7 +128,7 @@ RSpec.describe Metasploit::Credential::NTLMHash, type: :model do
|
|
128
128
|
context 'factories' do
|
129
129
|
context 'metasploit_credential_ntlm_hash' do
|
130
130
|
subject(:metasploit_credential_ntlm_hash) do
|
131
|
-
|
131
|
+
FactoryBot.build(:metasploit_credential_ntlm_hash)
|
132
132
|
end
|
133
133
|
|
134
134
|
it { is_expected.to be_valid }
|
@@ -162,14 +162,14 @@ RSpec.describe Metasploit::Credential::NTLMHash, type: :model do
|
|
162
162
|
end
|
163
163
|
|
164
164
|
let(:ntlm_hash) do
|
165
|
-
|
165
|
+
FactoryBot.build(
|
166
166
|
:metasploit_credential_ntlm_hash,
|
167
167
|
data: data
|
168
168
|
)
|
169
169
|
end
|
170
170
|
|
171
171
|
let(:password_data) do
|
172
|
-
|
172
|
+
FactoryBot.generate :metasploit_credential_password_data
|
173
173
|
end
|
174
174
|
|
175
175
|
#
|
@@ -216,7 +216,7 @@ RSpec.describe Metasploit::Credential::NTLMHash, type: :model do
|
|
216
216
|
end
|
217
217
|
|
218
218
|
let(:password_data) do
|
219
|
-
|
219
|
+
FactoryBot.generate :metasploit_credential_password_data
|
220
220
|
end
|
221
221
|
|
222
222
|
it 'calls lan_manager_hex_digest_from_password_data' do
|
@@ -28,7 +28,7 @@ RSpec.describe Metasploit::Credential::Origin::Import, type: :model do
|
|
28
28
|
|
29
29
|
|
30
30
|
subject(:metasploit_credential_origin_import) do
|
31
|
-
|
31
|
+
FactoryBot.build(:metasploit_credential_origin_import)
|
32
32
|
end
|
33
33
|
|
34
34
|
it { is_expected.to be_valid }
|
@@ -25,7 +25,7 @@ RSpec.describe Metasploit::Credential::Origin::Manual, type: :model do
|
|
25
25
|
context 'factories' do
|
26
26
|
context 'metasploit_credential_origin_manual' do
|
27
27
|
subject(:metasploit_credential_origin_manual) do
|
28
|
-
|
28
|
+
FactoryBot.build(:metasploit_credential_origin_manual)
|
29
29
|
end
|
30
30
|
|
31
31
|
it { is_expected.to be_valid }
|
@@ -4,7 +4,7 @@ RSpec.describe Metasploit::Credential::Origin::Service, type: :model do
|
|
4
4
|
|
5
5
|
|
6
6
|
subject(:service_origin) do
|
7
|
-
|
7
|
+
FactoryBot.build(:metasploit_credential_origin_service)
|
8
8
|
end
|
9
9
|
|
10
10
|
it_should_behave_like 'Metasploit::Concern.run'
|
@@ -33,7 +33,7 @@ RSpec.describe Metasploit::Credential::Origin::Service, type: :model do
|
|
33
33
|
context 'factories' do
|
34
34
|
context 'metasploit_credential_origin_service' do
|
35
35
|
subject(:metasploit_credential_origin_service) do
|
36
|
-
|
36
|
+
FactoryBot.build(:metasploit_credential_origin_service)
|
37
37
|
end
|
38
38
|
|
39
39
|
it { is_expected.to be_valid }
|
@@ -153,7 +153,7 @@ RSpec.describe Metasploit::Credential::Origin::Service, type: :model do
|
|
153
153
|
context do
|
154
154
|
# example to sample for service_id
|
155
155
|
before(:example) do
|
156
|
-
|
156
|
+
FactoryBot.create(:metasploit_credential_origin_service)
|
157
157
|
end
|
158
158
|
|
159
159
|
it { is_expected.to validate_uniqueness_of(:module_full_name).scoped_to(:service_id) }
|
@@ -27,7 +27,7 @@ RSpec.describe Metasploit::Credential::Origin::Session, type: :model do
|
|
27
27
|
|
28
28
|
|
29
29
|
subject(:metasploit_credential_origin_session) do
|
30
|
-
|
30
|
+
FactoryBot.build(:metasploit_credential_origin_session)
|
31
31
|
end
|
32
32
|
|
33
33
|
it { is_expected.to be_valid }
|
@@ -39,7 +39,7 @@ RSpec.describe Metasploit::Credential::Origin::Session, type: :model do
|
|
39
39
|
|
40
40
|
|
41
41
|
before(:example) do
|
42
|
-
|
42
|
+
FactoryBot.create(:metasploit_credential_origin_session)
|
43
43
|
end
|
44
44
|
|
45
45
|
it { is_expected.to validate_presence_of :post_reference_name }
|
@@ -6,7 +6,7 @@ RSpec.describe Metasploit::Credential::PasswordHash, type: :model do
|
|
6
6
|
context 'factories' do
|
7
7
|
context 'metasploit_credential_password_hash' do
|
8
8
|
subject(:metasploit_credential_password_hash) do
|
9
|
-
|
9
|
+
FactoryBot.build(:metasploit_credential_password_hash)
|
10
10
|
end
|
11
11
|
|
12
12
|
it { is_expected.to be_valid }
|
@@ -6,7 +6,7 @@ RSpec.describe Metasploit::Credential::Password, type: :model do
|
|
6
6
|
context 'factories' do
|
7
7
|
context 'metasploit_credential_password' do
|
8
8
|
subject(:metasploit_credential_password) do
|
9
|
-
|
9
|
+
FactoryBot.build(:metasploit_credential_password)
|
10
10
|
end
|
11
11
|
|
12
12
|
it { is_expected.to be_valid }
|
@@ -38,7 +38,7 @@ RSpec.describe Metasploit::Credential::PostgresMD5, type: :model do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
let(:postgres_md5) do
|
41
|
-
|
41
|
+
FactoryBot.build(
|
42
42
|
:metasploit_credential_postgres_md5,
|
43
43
|
data: given_data
|
44
44
|
)
|
@@ -82,7 +82,7 @@ RSpec.describe Metasploit::Credential::PostgresMD5, type: :model do
|
|
82
82
|
context 'factories' do
|
83
83
|
context 'metasploit_credential_ntlm_hash' do
|
84
84
|
subject(:metasploit_credential_postgres_md5) do
|
85
|
-
|
85
|
+
FactoryBot.build(:metasploit_credential_postgres_md5)
|
86
86
|
end
|
87
87
|
|
88
88
|
it { is_expected.to be_valid }
|
@@ -98,7 +98,7 @@ RSpec.describe Metasploit::Credential::PostgresMD5, type: :model do
|
|
98
98
|
let(:data) { "md5#{SecureRandom.hex(16)}" }
|
99
99
|
|
100
100
|
let(:postgres_md5) do
|
101
|
-
|
101
|
+
FactoryBot.build(
|
102
102
|
:metasploit_credential_postgres_md5,
|
103
103
|
data: data
|
104
104
|
)
|
@@ -17,7 +17,7 @@ RSpec.describe Metasploit::Credential::Private, type: :model do
|
|
17
17
|
context 'factories' do
|
18
18
|
context 'metasploit_credential_private' do
|
19
19
|
subject(:metasploit_credential_private) do
|
20
|
-
|
20
|
+
FactoryBot.build(:metasploit_credential_private)
|
21
21
|
end
|
22
22
|
|
23
23
|
it { is_expected.to be_valid }
|
@@ -44,7 +44,7 @@ RSpec.describe Metasploit::Credential::Private, type: :model do
|
|
44
44
|
end
|
45
45
|
|
46
46
|
let(:new_private) do
|
47
|
-
|
47
|
+
FactoryBot.build(
|
48
48
|
:metasploit_credential_private,
|
49
49
|
data: data,
|
50
50
|
type: type
|
@@ -56,7 +56,7 @@ RSpec.describe Metasploit::Credential::Private, type: :model do
|
|
56
56
|
#
|
57
57
|
|
58
58
|
let!(:existent_private) do
|
59
|
-
|
59
|
+
FactoryBot.create(
|
60
60
|
:metasploit_credential_private
|
61
61
|
)
|
62
62
|
end
|
@@ -84,7 +84,7 @@ RSpec.describe Metasploit::Credential::Private, type: :model do
|
|
84
84
|
|
85
85
|
context 'without same #type' do
|
86
86
|
let(:type) do
|
87
|
-
|
87
|
+
FactoryBot.generate :metasploit_credential_private_type
|
88
88
|
end
|
89
89
|
|
90
90
|
it { is_expected.not_to include(error) }
|
@@ -93,7 +93,7 @@ RSpec.describe Metasploit::Credential::Private, type: :model do
|
|
93
93
|
|
94
94
|
context 'without same #data' do
|
95
95
|
let(:data) do
|
96
|
-
|
96
|
+
FactoryBot.generate :metasploit_credential_private_data
|
97
97
|
end
|
98
98
|
|
99
99
|
context 'with same #type' do
|
@@ -106,7 +106,7 @@ RSpec.describe Metasploit::Credential::Private, type: :model do
|
|
106
106
|
|
107
107
|
context 'without same #type' do
|
108
108
|
let(:type) do
|
109
|
-
|
109
|
+
FactoryBot.generate :metasploit_credential_private_type
|
110
110
|
end
|
111
111
|
|
112
112
|
it { is_expected.not_to include(error) }
|
@@ -16,7 +16,7 @@ RSpec.describe Metasploit::Credential::Public, type: :model do
|
|
16
16
|
context 'factories' do
|
17
17
|
context 'metasploit_credential_public' do
|
18
18
|
subject(:metasploit_credential_public) do
|
19
|
-
|
19
|
+
FactoryBot.build(:metasploit_credential_public)
|
20
20
|
end
|
21
21
|
|
22
22
|
it { is_expected.to be_valid }
|
@@ -17,7 +17,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
17
17
|
context 'factories' do
|
18
18
|
context 'metasploit_credential_active_directory_domain' do
|
19
19
|
subject(:metasploit_credential_active_directory_domain) do
|
20
|
-
|
20
|
+
FactoryBot.build(:metasploit_credential_active_directory_domain)
|
21
21
|
end
|
22
22
|
|
23
23
|
it { is_expected.to be_valid }
|
@@ -35,7 +35,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
35
35
|
|
36
36
|
context 'metasplit_credential_oracle_system_identifier' do
|
37
37
|
subject(:metasploit_credential_oracle_system_identifier) do
|
38
|
-
|
38
|
+
FactoryBot.build(:metasploit_credential_oracle_system_identifier)
|
39
39
|
end
|
40
40
|
|
41
41
|
it { is_expected.to be_valid }
|
@@ -53,7 +53,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
53
53
|
|
54
54
|
context 'metasploit_credential_postgresql_database' do
|
55
55
|
subject(:metasploit_credential_postgresql_database) do
|
56
|
-
|
56
|
+
FactoryBot.build(:metasploit_credential_postgresql_database)
|
57
57
|
end
|
58
58
|
|
59
59
|
it { is_expected.to be_valid }
|
@@ -71,7 +71,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
71
71
|
|
72
72
|
context 'metasploit_credential_realm' do
|
73
73
|
subject(:metasploit_credential_realm) do
|
74
|
-
|
74
|
+
FactoryBot.build(:metasploit_credential_realm)
|
75
75
|
end
|
76
76
|
|
77
77
|
it { is_expected.to be_valid }
|
@@ -121,7 +121,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
let(:new_realm) do
|
124
|
-
|
124
|
+
FactoryBot.build(
|
125
125
|
:metasploit_credential_realm,
|
126
126
|
key: key,
|
127
127
|
value: value
|
@@ -133,7 +133,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
133
133
|
#
|
134
134
|
|
135
135
|
let!(:existent_realm) do
|
136
|
-
|
136
|
+
FactoryBot.create(
|
137
137
|
:metasploit_credential_realm
|
138
138
|
)
|
139
139
|
end
|
@@ -161,7 +161,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
161
161
|
|
162
162
|
context 'without same #value' do
|
163
163
|
let(:value) do
|
164
|
-
|
164
|
+
FactoryBot.generate :metasploit_credential_realm_value
|
165
165
|
end
|
166
166
|
|
167
167
|
it { is_expected.not_to include(error) }
|
@@ -170,7 +170,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
170
170
|
|
171
171
|
context 'without same #key' do
|
172
172
|
let(:key) do
|
173
|
-
|
173
|
+
FactoryBot.generate :metasploit_credential_realm_key
|
174
174
|
end
|
175
175
|
|
176
176
|
context 'with same #value' do
|
@@ -183,7 +183,7 @@ RSpec.describe Metasploit::Credential::Realm, type: :model do
|
|
183
183
|
|
184
184
|
context 'without same #value' do
|
185
185
|
let(:value) do
|
186
|
-
|
186
|
+
FactoryBot.generate :metasploit_credential_realm_value
|
187
187
|
end
|
188
188
|
|
189
189
|
it { is_expected.not_to include(error) }
|