cypress-on-rails 1.7.0 → 1.8.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
  SHA1:
3
- metadata.gz: fdceb59a86819c5367bbdcf74e91a29a61a5b716
4
- data.tar.gz: e900005562f5a7b6d921da8851dd78e8d8efbc80
3
+ metadata.gz: 7aec96956fcdd7eedf0d5f734cc81e134724c6e5
4
+ data.tar.gz: 300cecad4faa328db420de5d0a2b598f38f2506a
5
5
  SHA512:
6
- metadata.gz: eaf7e9782d23916147a28f8c83943143b688f3421a1f8985045255054898100abca0ec840b54b95744a0ead8f3fc0a980ebe38f6ab54f92f3cd48e44118ebb1d
7
- data.tar.gz: 2266629a6a23dd8280123cf1f6f56660764ea1894f482603016e0e560afa094079086863809f5f3931da87d3efcb442aaba87ff0563c8f969cc48cd18721145a
6
+ metadata.gz: 6e132c239e673c30b9b4beeeabed6888a05663d3aac596efaa65bfd914f3f3529bf31951e65d3194283f36cd53fd1834e309eb71d5383040fd4135c34beab94e
7
+ data.tar.gz: 5c34509322e7262d239f5185490c737109e10af613e1e869edec42cc394f792656c598a19b297d93b6026f0d004622416d425b48a71c54c7dfeadc30d90bd8fa
data/.gitignore CHANGED
@@ -5,3 +5,4 @@ spec/examples.txt
5
5
  .idea
6
6
  spec/test.log
7
7
  pkg/*.gem
8
+ vendor/bundle
@@ -1,3 +1,9 @@
1
+ ## [1.8.0]
2
+ [Compare]: https://github.com/shakacode/cypress-on-rails/compare/v1.7.0...v1.8.0
3
+
4
+ ### Changed
5
+ * Use `FactoryBo#reload` to reset factory bot
6
+
1
7
  ## [1.7.0]
2
8
  [Compare]: https://github.com/shakacode/cypress-on-rails/compare/v1.6.0...v1.7.0
3
9
 
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_development_dependency 'rake'
20
20
  s.add_development_dependency 'rspec'
21
21
  s.add_development_dependency 'railties', '>= 3.2'
22
+ s.add_development_dependency 'factory_bot'
22
23
  s.metadata = {
23
24
  "bug_tracker_uri" => "https://github.com/shakacode/cypress-on-rails/issues",
24
25
  "changelog_uri" => "https://github.com/shakacode/cypress-on-rails/blob/master/CHANGELOG.md",
@@ -12,5 +12,9 @@ module CypressOnRails
12
12
  create(type,*params)
13
13
  end
14
14
  end
15
+
16
+ # to be API compatible with factorybot
17
+ def self.definition_file_paths=(*); end
18
+ def self.reload; end
15
19
  end
16
20
  end
@@ -3,15 +3,6 @@ require 'cypress_on_rails/simple_rails_factory'
3
3
 
4
4
  module CypressOnRails
5
5
  class SmartFactoryWrapper
6
- module FactoryCleaner
7
- def self.clean(f = FactoryBot)
8
- f.factories.clear if f.respond_to?(:factories)
9
- f.traits.clear if f.respond_to?(:traits)
10
- f.callbacks.clear if f.respond_to?(:callbacks)
11
- f.sequences.clear if f.respond_to?(:sequences)
12
- end
13
- end
14
-
15
6
  def self.instance
16
7
  @instance ||= new(files: [], factory: SimpleRailsFactory)
17
8
  end
@@ -33,14 +24,13 @@ module CypressOnRails
33
24
  attr_accessor :always_reload
34
25
 
35
26
  def initialize(files:, factory:, always_reload: false,
36
- factory_cleaner: FactoryCleaner, kernel: Kernel, file_system: File,
37
- dir_system: Dir)
27
+ kernel: Kernel, file_system: File, dir_system: Dir)
38
28
  self.files = files
39
29
  self.factory = factory
30
+ factory.definition_file_paths = []
40
31
  self.always_reload = always_reload
41
32
  @kernel = kernel
42
33
  @file_system = file_system
43
- @factory_cleaner = factory_cleaner
44
34
  @latest_mtime = nil
45
35
  @dir_system = dir_system
46
36
  end
@@ -83,7 +73,7 @@ module CypressOnRails
83
73
  return unless should_reload?(current_latest_mtime)
84
74
  logger.info 'Loading Factories'
85
75
  @latest_mtime = current_latest_mtime
86
- @factory_cleaner.clean(factory)
76
+ factory.reload
87
77
  files.each do |file|
88
78
  logger.debug "-- Loading: #{file}"
89
79
  @kernel.load(file)
@@ -1,3 +1,3 @@
1
1
  module CypressOnRails
2
- VERSION = '1.7.0'
2
+ VERSION = '1.8.0'
3
3
  end
@@ -1,4 +1,5 @@
1
1
  require 'cypress_on_rails/smart_factory_wrapper'
2
+ require 'factory_bot'
2
3
 
3
4
  RSpec.describe CypressOnRails::SmartFactoryWrapper do
4
5
  FileSystemDummy = Struct.new(:file_hash) do
@@ -10,8 +11,9 @@ RSpec.describe CypressOnRails::SmartFactoryWrapper do
10
11
  let(:time_now) { Time.now }
11
12
  let(:mtime_hash) { {'file1.rb' => time_now, 'file2.rb' => time_now } }
12
13
  let(:files) { %w(file1.rb file2.rb) }
13
- let(:factory_double) { double('FactoryBot', create: true, create_list: true) }
14
- let(:factory_cleaner) { class_double(CypressOnRails::SmartFactoryWrapper::FactoryCleaner, clean: true) }
14
+ let(:factory_double) do
15
+ class_double(FactoryBot, create: nil, create_list: nil, "definition_file_paths=": nil, reload: nil)
16
+ end
15
17
  let(:kernel_double) { class_double(Kernel, load: true) }
16
18
  let(:file_double) { FileSystemDummy.new(mtime_hash) }
17
19
  let(:dir_double) { class_double(Dir) }
@@ -25,8 +27,7 @@ RSpec.describe CypressOnRails::SmartFactoryWrapper do
25
27
  factory: factory_double,
26
28
  kernel: kernel_double,
27
29
  file_system: file_double,
28
- dir_system: dir_double,
29
- factory_cleaner: factory_cleaner)
30
+ dir_system: dir_double)
30
31
  end
31
32
 
32
33
  it 'loads all the files on first create it' do
@@ -68,7 +69,7 @@ RSpec.describe CypressOnRails::SmartFactoryWrapper do
68
69
 
69
70
  it 'wont load the files if they have not changed' do
70
71
  subject.create(:user)
71
- subject.create_list(:user)
72
+ subject.create_list(:user, 2)
72
73
  expect(kernel_double).to have_received(:load).with('file1.rb').once
73
74
  expect(kernel_double).to have_received(:load).with('file2.rb').once
74
75
  end
@@ -79,7 +80,7 @@ RSpec.describe CypressOnRails::SmartFactoryWrapper do
79
80
  expect(kernel_double).to have_received(:load).with('file2.rb').once
80
81
 
81
82
  mtime_hash['file1.rb'] = Time.now
82
- subject.create_list(:user)
83
+ subject.create_list(:user, 2)
83
84
  expect(kernel_double).to have_received(:load).with('file1.rb').twice
84
85
  expect(kernel_double).to have_received(:load).with('file2.rb').twice
85
86
  end
@@ -91,24 +92,24 @@ RSpec.describe CypressOnRails::SmartFactoryWrapper do
91
92
  expect(kernel_double).to have_received(:load).with('file2.rb').once
92
93
 
93
94
  mtime_hash.delete('file1.rb')
94
- subject.create_list(:user)
95
+ subject.create_list(:user, 2)
95
96
  expect(kernel_double).to have_received(:load).with('file1.rb').once
96
97
  expect(kernel_double).to have_received(:load).with('file2.rb').twice
97
98
  end
98
99
 
99
- it 'will reset factory if a has changed' do
100
+ it 'will reset factory if a file has changed' do
100
101
  subject.create(:user)
101
- expect(factory_cleaner).to have_received(:clean).with(factory_double)
102
+ expect(factory_double).to have_received(:reload)
102
103
 
103
104
  mtime_hash['file1.rb'] = Time.now
104
- subject.create_list(:user)
105
+ subject.create_list(:user, 2)
105
106
 
106
- expect(factory_cleaner).to have_received(:clean).with(factory_double).twice
107
+ expect(factory_double).to have_received(:reload).twice
107
108
  end
108
109
 
109
110
  it 'will always reload the files enabled' do
110
111
  subject.always_reload = true
111
- subject.create_list(:user)
112
+ subject.create_list(:user, 2)
112
113
  subject.create(:user)
113
114
  expect(kernel_double).to have_received(:load).with('file1.rb').twice
114
115
  expect(kernel_double).to have_received(:load).with('file2.rb').twice
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cypress-on-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - miceportal team
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-07-02 00:00:00.000000000 Z
12
+ date: 2020-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -67,6 +67,20 @@ dependencies:
67
67
  - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '3.2'
70
+ - !ruby/object:Gem::Dependency
71
+ name: factory_bot
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
70
84
  description: Integrates cypress with rails or rack applications
71
85
  email:
72
86
  - info@miceportal.de