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 +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +6 -0
- data/cypress-on-rails.gemspec +1 -0
- data/lib/cypress_on_rails/simple_rails_factory.rb +4 -0
- data/lib/cypress_on_rails/smart_factory_wrapper.rb +3 -13
- data/lib/cypress_on_rails/version.rb +1 -1
- data/spec/cypress_on_rails/smart_factory_wrapper_spec.rb +13 -12
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7aec96956fcdd7eedf0d5f734cc81e134724c6e5
|
4
|
+
data.tar.gz: 300cecad4faa328db420de5d0a2b598f38f2506a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e132c239e673c30b9b4beeeabed6888a05663d3aac596efaa65bfd914f3f3529bf31951e65d3194283f36cd53fd1834e309eb71d5383040fd4135c34beab94e
|
7
|
+
data.tar.gz: 5c34509322e7262d239f5185490c737109e10af613e1e869edec42cc394f792656c598a19b297d93b6026f0d004622416d425b48a71c54c7dfeadc30d90bd8fa
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/cypress-on-rails.gemspec
CHANGED
@@ -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",
|
@@ -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
|
-
|
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
|
-
|
76
|
+
factory.reload
|
87
77
|
files.each do |file|
|
88
78
|
logger.debug "-- Loading: #{file}"
|
89
79
|
@kernel.load(file)
|
@@ -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)
|
14
|
-
|
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(
|
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(
|
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.
|
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-
|
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
|