cucumber_factory 2.0.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
-