cypress-on-rails 1.1.0 → 1.1.1

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
  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