autoforme 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/spec/mtm_spec.rb CHANGED
@@ -17,9 +17,9 @@ describe AutoForme do
17
17
  end
18
18
 
19
19
  visit("/Artist/browse")
20
- page.html.should_not =~ /MTM/
20
+ page.html.wont_match /MTM/
21
21
  visit("/Artist/mtm_edit")
22
- page.html.should =~ /Unhandled Request/
22
+ page.html.must_match /Unhandled Request/
23
23
  end
24
24
 
25
25
  it "should have basic many to many association editing working" do
@@ -36,28 +36,28 @@ describe AutoForme do
36
36
  Album.create(:name=>'Album3')
37
37
 
38
38
  visit("/Artist/mtm_edit")
39
- page.title.should == 'Artist - Many To Many Edit'
39
+ page.title.must_equal 'Artist - Many To Many Edit'
40
40
  select("Artist1")
41
41
  click_button "Edit"
42
42
 
43
- find('h2').text.should == 'Edit Albums for Artist1'
44
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1", "Album2", "Album3"]
45
- page.all('select')[1].all('option').map{|s| s.text}.should == []
43
+ find('h2').text.must_equal 'Edit Albums for Artist1'
44
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1", "Album2", "Album3"]
45
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal []
46
46
  select("Album1", :from=>"Associate With")
47
47
  click_button "Update"
48
- page.html.should =~ /Updated albums association for Artist/
49
- Artist.first.albums.map{|x| x.name}.should == %w'Album1'
48
+ page.html.must_match /Updated albums association for Artist/
49
+ Artist.first.albums.map{|x| x.name}.must_equal %w'Album1'
50
50
 
51
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album2", "Album3"]
52
- page.all('select')[1].all('option').map{|s| s.text}.should == ["Album1"]
51
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album2", "Album3"]
52
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["Album1"]
53
53
  select("Album2", :from=>"Associate With")
54
54
  select("Album3", :from=>"Associate With")
55
55
  select("Album1", :from=>"Disassociate From")
56
56
  click_button "Update"
57
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2 Album3'
57
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2 Album3'
58
58
 
59
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1"]
60
- page.all('select')[1].all('option').map{|s| s.text}.should == ["Album2", "Album3"]
59
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1"]
60
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["Album2", "Album3"]
61
61
  end
62
62
 
63
63
  it "should have many to many association editing working with autocompletion" do
@@ -79,23 +79,23 @@ describe AutoForme do
79
79
  select("Artist1")
80
80
  click_button "Edit"
81
81
 
82
- page.all('select')[0].all('option').map{|s| s.text}.should == []
82
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal []
83
83
  fill_in "Associate With", :with=>a1.id
84
84
  click_button "Update"
85
- page.html.should =~ /Updated albums association for Artist/
86
- Artist.first.albums.map{|x| x.name}.should == %w'Album1'
85
+ page.html.must_match /Updated albums association for Artist/
86
+ Artist.first.albums.map{|x| x.name}.must_equal %w'Album1'
87
87
 
88
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1"]
88
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1"]
89
89
  fill_in "Associate With", :with=>a2.id
90
90
  select("Album1", :from=>"Disassociate From")
91
91
  click_button "Update"
92
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2'
92
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2'
93
93
 
94
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album2"]
94
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album2"]
95
95
  select("Album2", :from=>"Disassociate From")
96
96
  click_button "Update"
97
- Artist.first.refresh.albums.map{|x| x.name}.should == []
98
- page.all('select')[0].all('option').map{|s| s.text}.should == []
97
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal []
98
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal []
99
99
  end
100
100
 
101
101
  it "should have inline many to many association editing working" do
@@ -116,19 +116,19 @@ describe AutoForme do
116
116
  click_button "Edit"
117
117
  select 'Album1'
118
118
  click_button 'Add'
119
- page.html.should =~ /Updated albums association for Artist/
120
- Artist.first.albums.map{|x| x.name}.should == %w'Album1'
119
+ page.html.must_match /Updated albums association for Artist/
120
+ Artist.first.albums.map{|x| x.name}.must_equal %w'Album1'
121
121
 
122
122
  select 'Album2'
123
123
  click_button 'Add'
124
- Artist.first.refresh.albums.map{|x| x.name}.sort.should == %w'Album1 Album2'
124
+ Artist.first.refresh.albums.map{|x| x.name}.sort.must_equal %w'Album1 Album2'
125
125
 
126
126
  click_button 'Remove', :match=>:first
127
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2'
127
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2'
128
128
 
129
129
  select 'Album3'
130
130
  click_button 'Add'
131
- Artist.first.refresh.albums.map{|x| x.name}.sort.should == %w'Album2 Album3'
131
+ Artist.first.refresh.albums.map{|x| x.name}.sort.must_equal %w'Album2 Album3'
132
132
  end
133
133
 
134
134
  it "should have inline many to many association editing working with autocompletion" do
@@ -151,19 +151,19 @@ describe AutoForme do
151
151
  click_button "Edit"
152
152
  fill_in 'Albums', :with=>a1.id.to_s
153
153
  click_button 'Add'
154
- page.html.should =~ /Updated albums association for Artist/
155
- Artist.first.albums.map{|x| x.name}.should == %w'Album1'
154
+ page.html.must_match /Updated albums association for Artist/
155
+ Artist.first.albums.map{|x| x.name}.must_equal %w'Album1'
156
156
 
157
157
  fill_in 'Albums', :with=>a2.id.to_s
158
158
  click_button 'Add'
159
- Artist.first.refresh.albums.map{|x| x.name}.sort.should == %w'Album1 Album2'
159
+ Artist.first.refresh.albums.map{|x| x.name}.sort.must_equal %w'Album1 Album2'
160
160
 
161
161
  click_button 'Remove', :match=>:first
162
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2'
162
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2'
163
163
 
164
164
  fill_in 'Albums', :with=>a3.id.to_s
165
165
  click_button 'Add'
166
- Artist.first.refresh.albums.map{|x| x.name}.sort.should == %w'Album2 Album3'
166
+ Artist.first.refresh.albums.map{|x| x.name}.sort.must_equal %w'Album2 Album3'
167
167
  end
168
168
 
169
169
  it "should have working many to many association links on show and edit pages" do
@@ -184,7 +184,7 @@ describe AutoForme do
184
184
  click_link 'Edit'
185
185
  select 'Artist1'
186
186
  click_button 'Edit'
187
- page.html.should_not =~ /Albums/
187
+ page.html.wont_match /Albums/
188
188
 
189
189
  visit("/Album/new")
190
190
  fill_in 'Name', :with=>'Album1'
@@ -199,8 +199,8 @@ describe AutoForme do
199
199
  select 'Album1'
200
200
  click_button 'Show'
201
201
  click_link 'Artist1'
202
- page.current_path.should =~ %r{Artist/show/\d+}
203
- page.html.should_not =~ /Albums/
202
+ page.current_path.must_match %r{Artist/show/\d+}
203
+ page.html.wont_match /Albums/
204
204
  end
205
205
 
206
206
  it "should have many to many association editing working when associated class is not using autoforme" do
@@ -219,22 +219,22 @@ describe AutoForme do
219
219
  select("Artist1")
220
220
  click_button "Edit"
221
221
 
222
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1", "Album2", "Album3"]
223
- page.all('select')[1].all('option').map{|s| s.text}.should == []
222
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1", "Album2", "Album3"]
223
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal []
224
224
  select("Album1", :from=>"Associate With")
225
225
  click_button "Update"
226
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album1'
226
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album1'
227
227
 
228
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album2", "Album3"]
229
- page.all('select')[1].all('option').map{|s| s.text}.should == ["Album1"]
228
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album2", "Album3"]
229
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["Album1"]
230
230
  select("Album2", :from=>"Associate With")
231
231
  select("Album3", :from=>"Associate With")
232
232
  select("Album1", :from=>"Disassociate From")
233
233
  click_button "Update"
234
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2 Album3'
234
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2 Album3'
235
235
 
236
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1"]
237
- page.all('select')[1].all('option').map{|s| s.text}.should == ["Album2", "Album3"]
236
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1"]
237
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["Album2", "Album3"]
238
238
  end
239
239
 
240
240
  it "should use filter/order from associated class" do
@@ -257,38 +257,38 @@ describe AutoForme do
257
257
  select("Artist1")
258
258
  click_button "Edit"
259
259
 
260
- page.all('select')[0].all('option').map{|s| s.text}.should == ["B1", "E1"]
261
- page.all('select')[1].all('option').map{|s| s.text}.should == []
260
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["B1", "E1"]
261
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal []
262
262
  select("E1", :from=>"Associate With")
263
263
  click_button "Update"
264
- Artist.first.albums.map{|x| x.name}.should == %w'E1'
264
+ Artist.first.albums.map{|x| x.name}.must_equal %w'E1'
265
265
 
266
- page.all('select')[0].all('option').map{|s| s.text}.should == ["B1"]
267
- page.all('select')[1].all('option').map{|s| s.text}.should == ["E1"]
266
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["B1"]
267
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["E1"]
268
268
  select("B1", :from=>"Associate With")
269
269
  select("E1", :from=>"Disassociate From")
270
270
  click_button "Update"
271
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'B1'
271
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'B1'
272
272
 
273
- page.all('select')[0].all('option').map{|s| s.text}.should == ["E1"]
274
- page.all('select')[1].all('option').map{|s| s.text}.should == ["B1"]
273
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["E1"]
274
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["B1"]
275
275
 
276
276
  select("B1", :from=>"Disassociate From")
277
277
  Album.where(:name=>'B1').update(:name=>'Z1')
278
- proc{click_button "Update"}.should raise_error(Sequel::NoMatchingRow)
278
+ proc{click_button "Update"}.must_raise(Sequel::NoMatchingRow)
279
279
 
280
280
  visit('/Artist/mtm_edit')
281
281
  select("Artist1")
282
282
  click_button "Edit"
283
283
  select("E1", :from=>"Associate With")
284
284
  Album.where(:name=>'E1').update(:name=>'Y1')
285
- proc{click_button "Update"}.should raise_error(Sequel::NoMatchingRow)
285
+ proc{click_button "Update"}.must_raise(Sequel::NoMatchingRow)
286
286
 
287
287
  visit('/Artist/mtm_edit')
288
288
  select("Artist1")
289
289
  click_button "Edit"
290
- page.all('select')[0].all('option').map{|s| s.text}.should == []
291
- page.all('select')[1].all('option').map{|s| s.text}.should == []
290
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal []
291
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal []
292
292
  end
293
293
 
294
294
  it "should support column options on mtm_edit page" do
@@ -313,13 +313,13 @@ describe AutoForme do
313
313
 
314
314
  check "Album12"
315
315
  click_button "Update"
316
- Artist.first.albums.map{|x| x.name}.should == %w'Album1'
316
+ Artist.first.albums.map{|x| x.name}.must_equal %w'Album1'
317
317
 
318
318
  check "Album1Album1"
319
319
  check "Album22"
320
320
  check "Album32"
321
321
  click_button "Update"
322
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2 Album3'
322
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2 Album3'
323
323
 
324
324
  check "Album12"
325
325
  check "Album2Album2"
@@ -351,30 +351,30 @@ describe AutoForme do
351
351
  Album.create(:name=>'Album3')
352
352
 
353
353
  visit("/Artist/mtm_edit")
354
- page.title.should == 'Artist - Many To Many Edit'
354
+ page.title.must_equal 'Artist - Many To Many Edit'
355
355
  select("Artist1")
356
356
  click_button "Edit"
357
357
 
358
358
  select('albums')
359
359
  click_button "Edit"
360
360
 
361
- find('h2').text.should == 'Edit Albums for Artist1'
362
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1", "Album2", "Album3"]
363
- page.all('select')[1].all('option').map{|s| s.text}.should == []
361
+ find('h2').text.must_equal 'Edit Albums for Artist1'
362
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1", "Album2", "Album3"]
363
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal []
364
364
  select("Album1", :from=>"Associate With")
365
365
  click_button "Update"
366
- page.html.should =~ /Updated albums association for Artist/
367
- Artist.first.albums.map{|x| x.name}.should == %w'Album1'
366
+ page.html.must_match /Updated albums association for Artist/
367
+ Artist.first.albums.map{|x| x.name}.must_equal %w'Album1'
368
368
 
369
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album2", "Album3"]
370
- page.all('select')[1].all('option').map{|s| s.text}.should == ["Album1"]
369
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album2", "Album3"]
370
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["Album1"]
371
371
  select("Album2", :from=>"Associate With")
372
372
  select("Album3", :from=>"Associate With")
373
373
  select("Album1", :from=>"Disassociate From")
374
374
  click_button "Update"
375
- Artist.first.refresh.albums.map{|x| x.name}.should == %w'Album2 Album3'
375
+ Artist.first.refresh.albums.map{|x| x.name}.must_equal %w'Album2 Album3'
376
376
 
377
- page.all('select')[0].all('option').map{|s| s.text}.should == ["Album1"]
378
- page.all('select')[1].all('option').map{|s| s.text}.should == ["Album2", "Album3"]
377
+ page.all('select')[0].all('option').map{|s| s.text}.must_equal ["Album1"]
378
+ page.all('select')[1].all('option').map{|s| s.text}.must_equal ["Album2", "Album3"]
379
379
  end
380
380
  end
@@ -2,15 +2,6 @@ require 'rubygems'
2
2
  require 'action_controller/railtie'
3
3
  require 'autoforme'
4
4
 
5
- RSpec.configure do |c|
6
- c.after(:each) do |example|
7
- if Object.const_defined?(:AutoformeController)
8
- Object.send(:remove_const, :AutoformeController)
9
- Rails.application = nil
10
- end
11
- end
12
- end
13
-
14
5
  class AutoFormeSpec::App
15
6
  def self.autoforme(klass=nil, opts={}, &block)
16
7
  sc = Class.new(Rails::Application)
@@ -3,6 +3,12 @@ require 'roda'
3
3
  require 'autoforme'
4
4
  require 'rack/csrf'
5
5
 
6
+ begin
7
+ require 'tilt/erubis'
8
+ rescue LoadError
9
+ require 'tilt/erb'
10
+ end
11
+
6
12
  class AutoFormeSpec::App < Roda
7
13
  LAYOUT = <<HTML
8
14
  <!DOCTYPE html>
@@ -1,22 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'sequel'
3
3
  require 'logger'
4
- require 'rspec/version'
5
-
6
- RSpec.configure do |c|
7
- if RSpec::Version::STRING >= '2.11.0'
8
- c.expect_with :rspec do |c1|
9
- c1.syntax = :should
10
- end
11
- end
12
- c.around(:each) do |example|
13
- if db
14
- db.transaction(:rollback=>:always){example.run}
15
- else
16
- example.run
17
- end
18
- end
19
- end
20
4
 
21
5
  module AutoFormeSpec
22
6
  TYPE_MAP = {:string=>String, :integer=>Integer, :decimal=>Numeric}
data/spec/spec_helper.rb CHANGED
@@ -1,19 +1,19 @@
1
1
  require 'rubygems'
2
2
  require 'capybara'
3
3
  require 'capybara/dsl'
4
- require 'capybara/rspec/matchers'
5
4
  require 'rack/test'
5
+ require 'minitest/autorun'
6
+ require 'minitest/hooks/default'
6
7
 
7
8
  module AutoFormeSpec
8
9
  end
9
10
 
10
11
  require './spec/sequel_spec_helper'
11
- require "./spec/#{ENV['FRAMEWORK'] || 'sinatra'}_spec_helper"
12
+ require "./spec/#{ENV['FRAMEWORK'] || 'roda'}_spec_helper"
12
13
 
13
- RSpec::Core::ExampleGroup.class_eval do
14
+ class Minitest::HooksSpec
14
15
  include Rack::Test::Methods
15
16
  include Capybara::DSL
16
- include Capybara::RSpecMatchers
17
17
 
18
18
  attr_reader :app
19
19
  attr_reader :db
@@ -37,9 +37,17 @@ RSpec::Core::ExampleGroup.class_eval do
37
37
  self.app = app
38
38
  @model = @framework.models[klass.name] if klass
39
39
  end
40
+
41
+ around do |&block|
42
+ db ? db.transaction(:rollback=>:always){super(&block)} : super(&block)
43
+ end
40
44
 
41
45
  after do
42
46
  Capybara.reset_sessions!
43
47
  Capybara.use_default_driver
48
+ if Object.const_defined?(:AutoformeController)
49
+ Object.send(:remove_const, :AutoformeController)
50
+ Rails.application = nil
51
+ end
44
52
  end
45
53
  end