cucumber_factory 2.0.0 → 2.2.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.
@@ -2,9 +2,11 @@ $: << File.join(File.dirname(__FILE__), "/../../lib" )
2
2
 
3
3
  require 'cucumber_factory'
4
4
  require 'gemika'
5
+ require 'factory_bot'
5
6
 
6
7
  ActiveRecord::Base.default_timezone = :local
7
8
 
9
+ Dir["#{File.dirname(__FILE__)}/support/models/*.rb"].sort.each {|f| require f}
8
10
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].sort.each {|f| require f}
9
11
  Dir["#{File.dirname(__FILE__)}/shared_examples/**/*.rb"].sort.each {|f| require f}
10
12
 
@@ -16,4 +18,5 @@ Gemika::RSpec.configure do |config|
16
18
  config.before(:each) do
17
19
  PlainRubyClass.reset
18
20
  end
21
+ config.include FactoryBot::Syntax::Methods
19
22
  end
@@ -7,6 +7,8 @@ Gemika::Database.new.rewrite_schema! do
7
7
  t.integer :reviewer_id
8
8
  t.string :uuid_reviewer_id
9
9
  t.integer :box_office_result
10
+ t.string :premiere_site_type
11
+ t.bigint :premiere_site_id
10
12
  end
11
13
 
12
14
  create_table :users do |t|
@@ -35,4 +37,10 @@ Gemika::Database.new.rewrite_schema! do
35
37
  create_table :actors do |t|
36
38
  end
37
39
 
40
+ create_table :job_offers do |t|
41
+ end
42
+
43
+ create_table :operas do |t|
44
+ end
45
+
38
46
  end
@@ -0,0 +1,46 @@
1
+ FactoryBot.define do
2
+ factory :job_offer, :class => ::JobOffer do
3
+ transient do
4
+ my_transient_attribute { nil }
5
+ end
6
+
7
+ trait :tempting_job_offer do
8
+ transient do
9
+ other_transient_attribute { nil }
10
+ end
11
+ end
12
+ trait :risky
13
+ trait :lucrative
14
+ end
15
+
16
+ factory :user, :class => User do
17
+ transient do
18
+ movie { nil }
19
+ end
20
+
21
+ after(:build) do |user, evaluator|
22
+ if user.reviewed_movies.blank? && evaluator.movie
23
+ user.reviewed_movies << evaluator.movie
24
+ end
25
+ end
26
+ end
27
+
28
+ factory :movie, :class => Movie do
29
+ transient do
30
+ user { nil }
31
+ user_id { nil }
32
+ end
33
+
34
+ after(:build) do |movie, evaluator|
35
+ movie.reviewer = evaluator.user if evaluator.user
36
+ movie.reviewer_id = evaluator.user_id if evaluator.user_id
37
+ end
38
+
39
+ trait :parent_movie_trait
40
+
41
+ factory :subgenre_movie, traits: [:parent_movie_trait]
42
+ end
43
+ factory :opera, :class => Opera
44
+ factory :payment, :class => Payment
45
+ factory :uuid_user, :class => UuidUser
46
+ end
@@ -1,4 +1,2 @@
1
- class JobOffer
2
- def initialize(options)
3
- end
1
+ class JobOffer < ActiveRecord::Base
4
2
  end
@@ -3,6 +3,7 @@ class Movie < ActiveRecord::Base
3
3
  belongs_to :prequel, :class_name => "Movie"
4
4
  belongs_to :reviewer, :class_name => "User"
5
5
  belongs_to :uuid_reviewer, :class_name => "UuidUser"
6
+ belongs_to :premiere_site, polymorphic: true, required: false
6
7
 
7
8
  validate do |record|
8
9
  record.errors.add(:reviewer, 'may not be deleted') if record.reviewer and record.reviewer.deleted?
@@ -1,4 +1,3 @@
1
- class Opera
2
- def initialize(options)
3
- end
1
+ class Opera < ActiveRecord::Base
2
+ has_many :movies, as: :premiere_site, inverse_of: :premiere_site
4
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber_factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Koch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-10 00:00:00.000000000 Z
11
+ date: 2020-09-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber
@@ -97,6 +97,7 @@ files:
97
97
  - lib/cucumber_factory/build_strategy.rb
98
98
  - lib/cucumber_factory/factory.rb
99
99
  - lib/cucumber_factory/switcher.rb
100
+ - lib/cucumber_factory/update_strategy.rb
100
101
  - lib/cucumber_factory/version.rb
101
102
  - spec/cucumber_factory/factory/build_strategy_spec.rb
102
103
  - spec/cucumber_factory/steps_spec.rb
@@ -105,7 +106,7 @@ files:
105
106
  - spec/support/database.rb
106
107
  - spec/support/database.sample.yml
107
108
  - spec/support/database.travis.yml
108
- - spec/support/factory_bot_mock.rb
109
+ - spec/support/factories/factories.rb
109
110
  - spec/support/models/job_offer.rb
110
111
  - spec/support/models/machinist_model.rb
111
112
  - spec/support/models/movie.rb
@@ -1,17 +0,0 @@
1
- class FactoryBot # for factory_bot compatibility spec
2
-
3
- def self.factories
4
- {}
5
- end
6
-
7
- Factory = Struct.new(:name, :build_class)
8
-
9
- def self.stub_factories(hash)
10
- factories = {}
11
- hash.each do |name, build_class|
12
- factories[name] = Factory.new(name, build_class)
13
- end
14
- FactoryBot.stub :factories => factories
15
- end
16
- end
17
-