cucumber_factory 2.0.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0018303b5e8f5bdbd4beed10437846c6b51ccb3a241e04f134784569ac44f70e'
4
- data.tar.gz: 3d57005ccf8fc284ee73b00abbd8c05e0e2994d9b1640c6cbc1d2dc487faa711
3
+ metadata.gz: 864d657afd1eb2d45bba31a210ed4025aed3756c5224d5c2a2bfb8d9b9baa469
4
+ data.tar.gz: fc74f572c8518d5cb366e92a4799f6b74b176cc516c67cd6750432380404be49
5
5
  SHA512:
6
- metadata.gz: 6dda3560f3d20781d18da3f536cd990704a191ba3cd5e0027b163f6303ab1192e4154c8550bbb8036a6d526b6999aa45a64e8e06d94096ee8fb0167085c8b09f
7
- data.tar.gz: 1aade9eef28b0a68f1fbaae8e623cf4bf60d9287988efb3ad22ab266842b029d13e7da57f045deae9079930c5b36fa14a3a2406eeacb2c453b3755cb0a97a5aa
6
+ metadata.gz: 75750f57520b8a9e535d8d26094d53fbff9678a41b3ccff12a01f0610f79cc876ee2b031a95be37e831da33d80fa7b8072ae6ef4c377be233dc87f4d2edc4994
7
+ data.tar.gz: a409eaa3516d73efaf6da8d413bd426b48cd4b2aee19621982936fab6f0d79c830b8aae07b19d064b253f69445f4c26ab97700e08d14f0022ec9a54befbcd120
data/.gitignore CHANGED
@@ -6,3 +6,4 @@ pkg
6
6
  .rvmrc
7
7
  log/*.log
8
8
  spec/support/database.yml
9
+ uploads/
@@ -1,5 +1,4 @@
1
1
  rvm:
2
- - 1.8.7
3
2
  - 2.1.10
4
3
  - 2.5.3
5
4
 
@@ -13,20 +12,10 @@ dist: trusty
13
12
 
14
13
  matrix:
15
14
  exclude:
16
- - gemfile: Gemfile.cucumber-3.1
17
- rvm: 1.8.7
18
15
  - gemfile: Gemfile.cucumber-3.1
19
16
  rvm: 2.1.10 # cucumber 3 wants ruby >= 2.2
20
- - gemfile: Gemfile.cucumber-3.0
21
- rvm: 1.8.7
22
17
  - gemfile: Gemfile.cucumber-3.0
23
18
  rvm: 2.1.10 # cucumber 3 wants ruby >= 2.2
24
- - gemfile: Gemfile.cucumber-2.4
25
- rvm: 1.8.7
26
- - gemfile: Gemfile.cucumber-1.3
27
- rvm: 2.5.3 # doesn't work with old RSpec
28
- - gemfile: Gemfile.cucumber-1.3
29
- rvm: 2.1.10 # doesn't work with old RSpec
30
19
 
31
20
  install:
32
21
  # Replace default Travis CI bundler script with a version that doesn't
@@ -15,6 +15,57 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html
15
15
 
16
16
  -
17
17
 
18
+ ## 2.3.0 - 2020-09-24
19
+
20
+ ### Compatible changes
21
+
22
+ - Added a step to add file objects to a model:
23
+ ```cucumber
24
+ Given there is a user with the avatar file:"path/to/avatar.jpg"
25
+ ```
26
+ Both single and double quotes are supported.
27
+
28
+ ## 2.2.0 - 2020-09-23
29
+
30
+ ### Compatible changes
31
+
32
+ - A step was added that allows modifying existing records with a similar syntax to creating new records:
33
+ ```cucumber
34
+ (Given "Bob" is a user)
35
+ And "Bob" has the email "foo@bar.com" and is subscribed
36
+ ```
37
+ - This step will also work with doc strings or tables:
38
+ ```cucumber
39
+ (Given "Bob" is a user)
40
+ And the user above has these attributes:
41
+ | name | Bob |
42
+ | email | foo@bar.com |
43
+ ```
44
+
45
+ ## 2.1.1 - 2020-05-20
46
+
47
+ ### Compatible changes
48
+
49
+ - Cucumber 2.1.0 introduced some regressions which are being addressed with this patch:
50
+ - Fix the assignment of polymorphic associations.
51
+ - Restore the support for inherited traits within nested factories.
52
+
53
+ ## 2.1.0 - 2020-03-09
54
+
55
+ ### Compatible changes
56
+
57
+ - Allow associations to be set for [transient attributes](https://github.com/thoughtbot/factory_bot/blob/master/GETTING_STARTED.md#transient-attributes) if they are named after the model. For example, when there is a `Role` model and the`user` factory has a transient attribute `role`, the following steps are now valid:
58
+ ```
59
+ Given there is a role
60
+ And there is a user with the role above
61
+ ```
62
+
63
+ ## 2.0.2 - 2020-03-26
64
+
65
+ ### Compatible changes
66
+
67
+ - Removed development and test support for Ruby 1.8. Closes #32.
68
+
18
69
  ## 2.0.1 - 2020-02-27
19
70
 
20
71
  ### Compatible changes
@@ -2,16 +2,19 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Runtime dependencies
4
4
  gem 'cucumber', '~> 1.3.20'
5
- gem 'activesupport', '~> 2.3.0'
6
- gem 'activerecord', '~> 2.3.0'
7
- gem 'mysql2', '= 0.2.20'
8
- gem 'i18n', '=0.6.11' # 0.7 no longer builds for Ruby 1.8.7
5
+ gem 'activesupport', '~> 4.2.0'
6
+ gem 'activerecord', '~> 4.2.0'
7
+ gem 'mysql2'
9
8
 
10
9
  # Development dependencies
11
- gem 'rspec', '~> 1.0'
12
- gem 'rake', '=10.0.4'
10
+ gem 'rspec', '> 3.0'
11
+ gem 'rake', '>=10.0.4'
13
12
  gem 'database_cleaner', '~>1.0.0'
14
13
  gem 'gemika'
15
14
 
15
+ # Test dependencies
16
+ gem 'factory_bot', '< 5'
17
+ gem 'carrierwave', '~> 1.0'
18
+
16
19
  # Gem under test
17
20
  gem 'cucumber_factory', :path => '.'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cucumber_factory (1.15.0)
4
+ cucumber_factory (2.3.0)
5
5
  activerecord
6
6
  activesupport
7
7
  cucumber
@@ -10,10 +10,25 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activerecord (2.3.18)
14
- activesupport (= 2.3.18)
15
- activesupport (2.3.18)
16
- builder (3.2.2)
13
+ activemodel (4.2.11.1)
14
+ activesupport (= 4.2.11.1)
15
+ builder (~> 3.1)
16
+ activerecord (4.2.11.1)
17
+ activemodel (= 4.2.11.1)
18
+ activesupport (= 4.2.11.1)
19
+ arel (~> 6.0)
20
+ activesupport (4.2.11.1)
21
+ i18n (~> 0.7)
22
+ minitest (~> 5.1)
23
+ thread_safe (~> 0.3, >= 0.3.4)
24
+ tzinfo (~> 1.1)
25
+ arel (6.0.4)
26
+ builder (3.2.4)
27
+ carrierwave (1.2.3)
28
+ activemodel (>= 4.0.0)
29
+ activesupport (>= 4.0.0)
30
+ mime-types (>= 1.16)
31
+ concurrent-ruby (1.1.6)
17
32
  cucumber (1.3.20)
18
33
  builder (>= 2.1.2)
19
34
  diff-lcs (>= 1.1.3)
@@ -23,31 +38,54 @@ GEM
23
38
  cucumber_priority (0.3.2)
24
39
  cucumber
25
40
  database_cleaner (1.0.1)
26
- diff-lcs (1.2.5)
27
- gemika (0.3.2)
41
+ diff-lcs (1.3)
42
+ factory_bot (4.11.1)
43
+ activesupport (>= 3.0.0)
44
+ gemika (0.4.0)
28
45
  gherkin (2.12.2)
29
46
  multi_json (~> 1.3)
30
- i18n (0.6.11)
31
- multi_json (1.11.2)
47
+ i18n (0.9.5)
48
+ concurrent-ruby (~> 1.0)
49
+ mime-types (3.2.2)
50
+ mime-types-data (~> 3.2015)
51
+ mime-types-data (3.2018.0812)
52
+ minitest (5.12.0)
53
+ multi_json (1.14.1)
32
54
  multi_test (0.1.2)
33
- mysql2 (0.2.20)
34
- rake (10.0.4)
35
- rspec (1.3.2)
55
+ mysql2 (0.5.3)
56
+ rake (12.3.3)
57
+ rspec (3.9.0)
58
+ rspec-core (~> 3.9.0)
59
+ rspec-expectations (~> 3.9.0)
60
+ rspec-mocks (~> 3.9.0)
61
+ rspec-core (3.9.1)
62
+ rspec-support (~> 3.9.1)
63
+ rspec-expectations (3.9.0)
64
+ diff-lcs (>= 1.2.0, < 2.0)
65
+ rspec-support (~> 3.9.0)
66
+ rspec-mocks (3.9.1)
67
+ diff-lcs (>= 1.2.0, < 2.0)
68
+ rspec-support (~> 3.9.0)
69
+ rspec-support (3.9.2)
70
+ thread_safe (0.3.6)
71
+ tzinfo (1.2.6)
72
+ thread_safe (~> 0.1)
36
73
 
37
74
  PLATFORMS
38
75
  ruby
39
76
 
40
77
  DEPENDENCIES
41
- activerecord (~> 2.3.0)
42
- activesupport (~> 2.3.0)
78
+ activerecord (~> 4.2.0)
79
+ activesupport (~> 4.2.0)
80
+ carrierwave (~> 1.0)
43
81
  cucumber (~> 1.3.20)
44
82
  cucumber_factory!
45
83
  database_cleaner (~> 1.0.0)
84
+ factory_bot (< 5)
46
85
  gemika
47
- i18n (= 0.6.11)
48
- mysql2 (= 0.2.20)
49
- rake (= 10.0.4)
50
- rspec (~> 1.0)
86
+ mysql2
87
+ rake (>= 10.0.4)
88
+ rspec (> 3.0)
51
89
 
52
90
  BUNDLED WITH
53
- 1.17.1
91
+ 1.17.3
@@ -12,5 +12,9 @@ gem 'rake'
12
12
  gem 'database_cleaner'
13
13
  gem 'gemika'
14
14
 
15
+ # Test dependencies
16
+ gem 'factory_bot', '< 5' # 5.0 requires Ruby >= 2.3
17
+ gem 'carrierwave', '~> 1.0' # 2.0 requires Rails >= 5 and Ruby >= 2.2
18
+
15
19
  # Gem under test
16
20
  gem 'cucumber_factory', :path => '.'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cucumber_factory (2.0.1)
4
+ cucumber_factory (2.3.0)
5
5
  activerecord
6
6
  activesupport
7
7
  cucumber
@@ -24,6 +24,10 @@ GEM
24
24
  tzinfo (~> 1.1)
25
25
  arel (6.0.4)
26
26
  builder (3.2.3)
27
+ carrierwave (1.2.3)
28
+ activemodel (>= 4.0.0)
29
+ activesupport (>= 4.0.0)
30
+ mime-types (>= 1.16)
27
31
  concurrent-ruby (1.0.5)
28
32
  cucumber (2.4.0)
29
33
  builder (>= 2.1.2)
@@ -40,10 +44,15 @@ GEM
40
44
  cucumber
41
45
  database_cleaner (1.6.2)
42
46
  diff-lcs (1.3)
47
+ factory_bot (4.11.1)
48
+ activesupport (>= 3.0.0)
43
49
  gemika (0.3.2)
44
50
  gherkin (4.1.3)
45
51
  i18n (0.9.5)
46
52
  concurrent-ruby (~> 1.0)
53
+ mime-types (3.2.2)
54
+ mime-types-data (~> 3.2015)
55
+ mime-types-data (3.2018.0812)
47
56
  minitest (5.11.3)
48
57
  multi_json (1.13.1)
49
58
  multi_test (0.1.2)
@@ -72,9 +81,11 @@ PLATFORMS
72
81
  DEPENDENCIES
73
82
  activerecord (~> 4.2.0)
74
83
  activesupport (~> 4.2.0)
84
+ carrierwave (~> 1.0)
75
85
  cucumber (~> 2.4.0)
76
86
  cucumber_factory!
77
87
  database_cleaner
88
+ factory_bot (< 5)
78
89
  gemika
79
90
  mysql2
80
91
  rake
@@ -12,5 +12,9 @@ gem 'rake'
12
12
  gem 'database_cleaner'
13
13
  gem 'gemika'
14
14
 
15
+ # Test dependencies
16
+ gem 'factory_bot'
17
+ gem 'carrierwave'
18
+
15
19
  # Gem under test
16
20
  gem 'cucumber_factory', :path => '.'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cucumber_factory (2.0.1)
4
+ cucumber_factory (2.3.0)
5
5
  activerecord
6
6
  activesupport
7
7
  cucumber
@@ -24,6 +24,10 @@ GEM
24
24
  arel (7.1.4)
25
25
  backports (3.11.1)
26
26
  builder (3.2.3)
27
+ carrierwave (1.2.3)
28
+ activemodel (>= 4.0.0)
29
+ activesupport (>= 4.0.0)
30
+ mime-types (>= 1.16)
27
31
  concurrent-ruby (1.0.5)
28
32
  cucumber (3.0.2)
29
33
  builder (>= 2.1.2)
@@ -45,10 +49,15 @@ GEM
45
49
  cucumber
46
50
  database_cleaner (1.6.2)
47
51
  diff-lcs (1.3)
52
+ factory_bot (5.1.1)
53
+ activesupport (>= 4.2.0)
48
54
  gemika (0.3.2)
49
55
  gherkin (4.1.3)
50
56
  i18n (0.9.5)
51
57
  concurrent-ruby (~> 1.0)
58
+ mime-types (3.2.2)
59
+ mime-types-data (~> 3.2015)
60
+ mime-types-data (3.2018.0812)
52
61
  minitest (5.11.3)
53
62
  multi_json (1.13.1)
54
63
  multi_test (0.1.2)
@@ -77,9 +86,11 @@ PLATFORMS
77
86
  DEPENDENCIES
78
87
  activerecord (~> 5.0.0)
79
88
  activesupport (~> 5.0.0)
89
+ carrierwave
80
90
  cucumber (~> 3.0.0)
81
91
  cucumber_factory!
82
92
  database_cleaner
93
+ factory_bot
83
94
  gemika
84
95
  mysql2
85
96
  rake
@@ -12,5 +12,9 @@ gem 'rake'
12
12
  gem 'database_cleaner'
13
13
  gem 'gemika'
14
14
 
15
+ # Test dependencies
16
+ gem 'factory_bot'
17
+ gem 'carrierwave'
18
+
15
19
  # Gem under test
16
20
  gem 'cucumber_factory', :path => '.'
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cucumber_factory (2.0.1)
4
+ cucumber_factory (2.3.0)
5
5
  activerecord
6
6
  activesupport
7
7
  cucumber
@@ -24,6 +24,10 @@ GEM
24
24
  arel (8.0.0)
25
25
  backports (3.11.1)
26
26
  builder (3.2.3)
27
+ carrierwave (1.2.3)
28
+ activemodel (>= 4.0.0)
29
+ activesupport (>= 4.0.0)
30
+ mime-types (>= 1.16)
27
31
  concurrent-ruby (1.0.5)
28
32
  cucumber (3.1.0)
29
33
  builder (>= 2.1.2)
@@ -45,10 +49,15 @@ GEM
45
49
  cucumber
46
50
  database_cleaner (1.6.2)
47
51
  diff-lcs (1.3)
52
+ factory_bot (5.1.1)
53
+ activesupport (>= 4.2.0)
48
54
  gemika (0.3.2)
49
55
  gherkin (5.0.0)
50
56
  i18n (0.9.5)
51
57
  concurrent-ruby (~> 1.0)
58
+ mime-types (3.2.2)
59
+ mime-types-data (~> 3.2015)
60
+ mime-types-data (3.2018.0812)
52
61
  minitest (5.11.3)
53
62
  multi_json (1.13.1)
54
63
  multi_test (0.1.2)
@@ -77,9 +86,11 @@ PLATFORMS
77
86
  DEPENDENCIES
78
87
  activerecord (~> 5.1.0)
79
88
  activesupport (~> 5.1.0)
89
+ carrierwave
80
90
  cucumber (~> 3.1.0)
81
91
  cucumber_factory!
82
92
  database_cleaner
93
+ factory_bot
83
94
  gemika
84
95
  mysql2
85
96
  rake
data/README.md CHANGED
@@ -24,6 +24,13 @@ Quoted strings and numbers denote attribute values:
24
24
  Given there is a movie with the title "Sunshine" and the year 2007
25
25
  ```
26
26
 
27
+ To update an existing record, specify the record and the changes:
28
+ ```
29
+ Given the movie above has the title "Sunset" and the year 2008
30
+ Given the movie "Sunrise" has the year 2009
31
+ ```
32
+ A record can be specified by the `above` keyword, which uses the last created record of this class, or by any string that was used during its creation.
33
+
27
34
  Setting boolean attributes
28
35
  --------------------------
29
36
 
@@ -42,6 +49,13 @@ Given there is a movie which is awesome, popular and successful but not science
42
49
  And there is a director with the income "500000" but with the account balance "-30000"
43
50
  ```
44
51
 
52
+ To update boolean attributes use the keyword `is`:
53
+
54
+ ```cucumber
55
+ Given the movie above is awesome but not popular
56
+ Given the movie above has the year 1979 but is not science fiction
57
+ ```
58
+
45
59
 
46
60
  Setting many attributes with a table
47
61
  ------------------------------------
@@ -62,10 +76,18 @@ Given there is a movie with these attributes:
62
76
  | comedy | false |
63
77
  ```
64
78
 
79
+ ```cucumber
80
+ Given the movie above has these attributes:
81
+ """
82
+ name: Sunshine
83
+ comedy: false
84
+ """
85
+ ```
86
+
65
87
  Setting associations
66
88
  --------------------
67
89
 
68
- You can set `belongs_to` associations by referring to the last created record of as `above`:
90
+ You can set `belongs_to` and `transient` associations by referring to the last created record of as `above`:
69
91
 
70
92
  ```cucumber
71
93
  Given there is a movie with the title "Before Sunrise"
@@ -129,7 +151,16 @@ Given there is a movie with the tags ["comedy", "drama" and "action"]
129
151
  ```
130
152
 
131
153
 
154
+ Setting file attributes
155
+ -----------------------
156
+
157
+ You can set an attribute to a file object with the following syntax:
158
+
159
+ ```cucumber
160
+ Given there is a movie with the image file:'path/to/image.jpg'
161
+ ```
132
162
 
163
+ All paths are relative to the project root, absolute paths are not supported. Please note that file attributes must follow the syntax `file:"PATH"`, both single and double quotes are allowed.
133
164
 
134
165
  Using named factories and traits
135
166
  --------------------------------