incremental_factory_names 0.0.1 → 0.0.2
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/README.md +4 -4
- data/lib/incremental_factory_names.rb +5 -1
- data/lib/incremental_factory_names/version.rb +1 -1
- data/spec/incremental_factory_names_spec.rb +20 -14
- data/spec/spec_helper.rb +22 -4
- metadata +15 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6fac1a3752cf8d3611bccd5e9f5de944ef0e95e7b36639218b4eb4ec774f776f
|
4
|
+
data.tar.gz: 2f4c8c1073c1df531d557632a1d0d41c8fb74ad43d6c6919e85a7bbe7a01a4c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25d8391da43915665b1f97a659a815f0bd8db8a9239411034405344eb1a031b003b0a1942aa2e120fe00db85d1dacaa2a3c3848238790ff27086ed81bf144645
|
7
|
+
data.tar.gz: cea22287c816d3dcf20f22a2b7e836bfcbf4767e425d6ba2ade37dbe32c4f28dc681cc775b32bb6451fbf285dc5bf6ce8b530b4a84c7faab379744ebb9e7c75b
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# incremental_factory_names helps generate incremental factory names for preventing randomly failure specs
|
2
2
|
|
3
3
|
## Installation
|
4
4
|
|
@@ -36,16 +36,16 @@ and in any factory you need to have incremental names:
|
|
36
36
|
```ruby
|
37
37
|
factory :user do
|
38
38
|
...
|
39
|
-
|
39
|
+
incremental_factory_name :name # returns 'User 001', 'User 002', etc
|
40
40
|
...
|
41
41
|
```
|
42
42
|
|
43
43
|
with additional params:
|
44
44
|
```ruby
|
45
45
|
...
|
46
|
-
|
46
|
+
incremental_factory_name :name, name: 'Name' # returns 'Name 001', 'Name 002', etc
|
47
47
|
...
|
48
|
-
|
48
|
+
incremental_factory_name :name, length: 5 # returns 'User 00001', 'User 00002', etc
|
49
49
|
...
|
50
50
|
```
|
51
51
|
|
@@ -1,7 +1,11 @@
|
|
1
1
|
module IncrementalFactoryNames
|
2
2
|
DEFAULT_LENGTH = 3
|
3
3
|
|
4
|
-
def incremental_factory_name(
|
4
|
+
def incremental_factory_name(field_name, name: nil, length: DEFAULT_LENGTH)
|
5
|
+
sequence(field_name) { |number| field_value(number, name || factory_name, length) }
|
6
|
+
end
|
7
|
+
|
8
|
+
def field_value(number, name, length)
|
5
9
|
"#{name} #{sprintf("%0#{length}d", number)}"
|
6
10
|
end
|
7
11
|
|
@@ -1,29 +1,35 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'IncrementalFactoryNames' do
|
4
|
-
|
4
|
+
context 'simple' do
|
5
|
+
let(:user1) { build(:user) }
|
6
|
+
let(:user2) { build(:user) }
|
5
7
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
expect(result).to eq('Factory User 099')
|
8
|
+
it { expect(user1.nickname).to eq('User 001') }
|
9
|
+
it { expect(user2.nickname).to eq('User 002') }
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
context 'with name' do
|
13
|
+
let(:user1) { build(:user, :with_name) }
|
14
|
+
let(:user2) { build(:user, :with_name) }
|
14
15
|
|
15
|
-
expect(
|
16
|
+
it { expect(user1.nickname).to eq('Nickname 001') }
|
17
|
+
it { expect(user2.nickname).to eq('Nickname 002') }
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
+
context 'with length' do
|
21
|
+
let(:user1) { build(:user, :with_length) }
|
22
|
+
let(:user2) { build(:user, :with_length) }
|
20
23
|
|
21
|
-
expect(
|
24
|
+
it { expect(user1.nickname).to eq('User 0001') }
|
25
|
+
it { expect(user2.nickname).to eq('User 0002') }
|
22
26
|
end
|
23
27
|
|
24
|
-
|
25
|
-
|
28
|
+
context 'with name and length' do
|
29
|
+
let(:user1) { build(:user, :with_name_and_length) }
|
30
|
+
let(:user2) { build(:user, :with_name_and_length) }
|
26
31
|
|
27
|
-
expect(
|
32
|
+
it { expect(user1.nickname).to eq('Another Nickname 01') }
|
33
|
+
it { expect(user2.nickname).to eq('Another Nickname 02') }
|
28
34
|
end
|
29
35
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,27 @@
|
|
1
1
|
require 'incremental_factory_names'
|
2
|
+
require 'factory_bot'
|
2
3
|
|
3
|
-
|
4
|
-
|
4
|
+
include FactoryBot::Syntax::Methods
|
5
|
+
include IncrementalFactoryNames
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
class User
|
8
|
+
attr_accessor :nickname
|
9
|
+
end
|
10
|
+
|
11
|
+
FactoryBot.define do
|
12
|
+
factory :user do
|
13
|
+
incremental_factory_name :nickname
|
14
|
+
end
|
15
|
+
|
16
|
+
trait :with_name do
|
17
|
+
incremental_factory_name :nickname, name: 'Nickname'
|
18
|
+
end
|
19
|
+
|
20
|
+
trait :with_length do
|
21
|
+
incremental_factory_name :nickname, length: 4
|
22
|
+
end
|
23
|
+
|
24
|
+
trait :with_name_and_length do
|
25
|
+
incremental_factory_name :nickname, name: 'Another Nickname', length: 2
|
8
26
|
end
|
9
27
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: incremental_factory_names
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ihor Voloshyn
|
@@ -14,45 +14,46 @@ dependencies:
|
|
14
14
|
name: rspec
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.8.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: factory_bot
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 5.0.2
|
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:
|
40
|
+
version: 5.0.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 12.3.3
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
description:
|
54
|
+
version: 12.3.3
|
55
|
+
description: incremental_factory_names generates incremental factory names for preventing
|
56
|
+
randomly failure specs
|
56
57
|
email: snick2510@gmail.com
|
57
58
|
executables: []
|
58
59
|
extensions: []
|