cypress-on-rails 1.7.0 → 1.8.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.
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