cypress-on-rails 1.1.0 → 1.1.1

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
  SHA256:
3
- metadata.gz: a0b54d8af351f5f44e1da67e4c75540a40f529b03434ed24a50e8e145e456084
4
- data.tar.gz: 599595f9a60941b3b23696d1867fb4c687eaa24b656392df4c98650ba6786558
3
+ metadata.gz: 92ef9e4a473b4f2443f22531b4f9841e4b2026cd3c10752e4e21acc3aac4bd26
4
+ data.tar.gz: d78ddeef85ade24097a8582e9f96e116c914312cdfee9f2671921a57ce6ebc88
5
5
  SHA512:
6
- metadata.gz: 05ebe6824bea9027f18f5e02425aa7f15979e6e8e36af99a3dd3112df3715d7a5d456ecd85b9a307486c873b9af5029bc7f1b6a0f75ae544670c18efe13182ae
7
- data.tar.gz: d831d9abb63c8b89fad1eb5367c4ad95489f6dfc83c739da0e8508ede8a13723ef0204ad5dba80b9625f47f2d96306ec1d484f13acd77015c9a1eb3671013a34
6
+ metadata.gz: 8823d163582b4aa7f328ac52069db710fb851cab2e94835eda32dfbb9b7008bbe35fb4cdaa7be826dc5ca9f4db038cf8d947e1ab016b41070171b6c582f87d52
7
+ data.tar.gz: 34b03e8a0e6f15152ed263f234768e0af41aeb84fbe5144c5c97d305bc4e3470e592c324d155cad48534310f55682d578b4fcb292d1c6523db96bedc117b888a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 1.1.1
2
+ ### Fixed
3
+ * smart factory wrapper can handle when factory files get deleted
4
+
5
+ ## 1.1.0
1
6
  ### Tasks
2
7
  * add cypress examples to install generator
3
8
  * add active record integration specs
data/README.md CHANGED
@@ -192,7 +192,7 @@ require 'cypress_dev/middleware'
192
192
  CypressDev.configure do |c|
193
193
  c.cypress_folder = File.expand_path("#{__dir__}/test/cypress")
194
194
  end
195
- use Cypress::Middleware
195
+ use CypressDev::Middleware
196
196
 
197
197
  run MyApp
198
198
  ```
@@ -29,12 +29,12 @@ module CypressDev
29
29
  end
30
30
 
31
31
  # @return [Array]
32
- attr_accessor :files
33
32
  attr_accessor :factory
34
33
  attr_accessor :always_reload
35
34
 
36
35
  def initialize(files:, factory:, always_reload: false,
37
- factory_cleaner: FactoryCleaner, kernel: Kernel, file_system: File)
36
+ factory_cleaner: FactoryCleaner, kernel: Kernel, file_system: File,
37
+ dir_system: Dir)
38
38
  self.files = files
39
39
  self.factory = factory
40
40
  self.always_reload = always_reload
@@ -42,6 +42,7 @@ module CypressDev
42
42
  @file_system = file_system
43
43
  @factory_cleaner = factory_cleaner
44
44
  @latest_mtime = nil
45
+ @dir_system = dir_system
45
46
  end
46
47
 
47
48
  def create(*args)
@@ -56,6 +57,17 @@ module CypressDev
56
57
 
57
58
  private
58
59
 
60
+ # @param [String,Array] arg
61
+ def files=(array)
62
+ array = [array] if array.is_a?(String)
63
+ @dir_array = array
64
+ end
65
+
66
+ # @return [Array<String>]
67
+ def files
68
+ Dir[*@dir_array]
69
+ end
70
+
59
71
  def logger
60
72
  CypressDev.configuration.logger
61
73
  end
@@ -1,3 +1,3 @@
1
1
  module CypressDev
2
- VERSION = '1.1.0'
2
+ VERSION = '1.1.1'
3
3
  end
@@ -26,5 +26,5 @@ factory = FactoryGirl if defined?(FactoryGirl)
26
26
  CypressDev::SmartFactoryWrapper.configure(
27
27
  always_reload: !Rails.configuration.cache_classes,
28
28
  factory: factory,
29
- files: Dir['./spec/factories/**/*.rb']
29
+ files: %w(spec/factories.rb ./spec/factories/**/*.rb)
30
30
  )
@@ -14,12 +14,18 @@ RSpec.describe CypressDev::SmartFactoryWrapper do
14
14
  let(:factory_cleaner) { class_double(CypressDev::SmartFactoryWrapper::FactoryCleaner, clean: true) }
15
15
  let(:kernel_double) { class_double(Kernel, load: true) }
16
16
  let(:file_double) { FileSystemDummy.new(mtime_hash) }
17
+ let(:dir_double) { class_double(Dir) }
18
+
19
+ before do
20
+ allow(Dir).to receive(:[]).with(*files) { mtime_hash.keys }
21
+ end
17
22
 
18
23
  subject do
19
24
  described_class.new(files: files,
20
25
  factory: factory_double,
21
26
  kernel: kernel_double,
22
27
  file_system: file_double,
28
+ dir_system: dir_double,
23
29
  factory_cleaner: factory_cleaner)
24
30
  end
25
31
 
@@ -52,7 +58,7 @@ RSpec.describe CypressDev::SmartFactoryWrapper do
52
58
  expect(kernel_double).to have_received(:load).with('file2.rb').once
53
59
  end
54
60
 
55
- it 'will reload the files if a has changed' do
61
+ it 'will reload the files if any have changed' do
56
62
  subject.create(:user)
57
63
  expect(kernel_double).to have_received(:load).with('file1.rb').once
58
64
  expect(kernel_double).to have_received(:load).with('file2.rb').once
@@ -63,6 +69,18 @@ RSpec.describe CypressDev::SmartFactoryWrapper do
63
69
  expect(kernel_double).to have_received(:load).with('file2.rb').twice
64
70
  end
65
71
 
72
+ it 'will reload only the files that exist' do
73
+ subject.always_reload = true
74
+ subject.create(:user)
75
+ expect(kernel_double).to have_received(:load).with('file1.rb').once
76
+ expect(kernel_double).to have_received(:load).with('file2.rb').once
77
+
78
+ mtime_hash.delete('file1.rb')
79
+ subject.create_list(:user)
80
+ expect(kernel_double).to have_received(:load).with('file1.rb').once
81
+ expect(kernel_double).to have_received(:load).with('file2.rb').twice
82
+ end
83
+
66
84
  it 'will reset factory if a has changed' do
67
85
  subject.create(:user)
68
86
  expect(factory_cleaner).to have_received(:clean).with(factory_double)
@@ -80,4 +98,18 @@ RSpec.describe CypressDev::SmartFactoryWrapper do
80
98
  expect(kernel_double).to have_received(:load).with('file1.rb').twice
81
99
  expect(kernel_double).to have_received(:load).with('file2.rb').twice
82
100
  end
101
+
102
+ context 'files is a string' do
103
+ let(:files) { 'file*.rb' }
104
+
105
+ before do
106
+ allow(Dir).to receive(:[]).with('file*.rb') { mtime_hash.keys }
107
+ end
108
+
109
+ it 'loads all the files on first create it' do
110
+ subject.create(:user)
111
+ expect(kernel_double).to have_received(:load).with('file1.rb')
112
+ expect(kernel_double).to have_received(:load).with('file2.rb')
113
+ end
114
+ end
83
115
  end
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.1.0
4
+ version: 1.1.1
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: 2018-07-14 00:00:00.000000000 Z
12
+ date: 2018-08-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack