test/test_controller_generator.rb in padrino-gen-0.12.1 vs test/test_controller_generator.rb in padrino-gen-0.12.2
- old
+ new
@@ -4,10 +4,12 @@
def setup
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
`mkdir -p #{@apptmp}`
@controller_path = "#{@apptmp}/sample_project/app/controllers/demo_items.rb"
@controller_test_path = "#{@apptmp}/sample_project/test/app/controllers/demo_items_controller_test.rb"
+ @helper_path = "#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb"
+ @helper_test_path = "#{@apptmp}/sample_project/test/app/helpers/demo_items_helper_test.rb"
end
def teardown
`rm -rf #{@apptmp}`
end
@@ -21,29 +23,40 @@
it 'should generate controller within existing project' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/SampleProject::App.controllers :demo_items do/m, @controller_path)
- assert_match_in_file(/SampleProject::App.helpers do/m, "#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
+ assert_match_in_file(/helpers DemoItemsHelper/, @helper_path)
assert_file_exists("#{@apptmp}/sample_project/app/views/demo_items")
assert_file_exists(@controller_test_path)
end
+ it 'should generate helper within existing project' do
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
+ capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
+ assert_match_in_file(/module SampleProject/, @helper_path)
+ assert_match_in_file(/class App/, @helper_path)
+ assert_match_in_file(/module DemoItemsHelper/, @helper_path)
+ assert_match_in_file(/helpers DemoItemsHelper/, @helper_path)
+ assert_file_exists(@helper_path)
+ assert_file_exists(@helper_test_path)
+ end
+
it 'should generate controller within existing project with weird name' do
capture_io { generate(:project, 'warepedia', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/warepedia") }
assert_match_in_file(/Warepedia::App.controllers :demo_items do/m, "#{@apptmp}/warepedia/app/controllers/demo_items.rb")
- assert_match_in_file(/Warepedia::App.helpers do/m, "#{@apptmp}/warepedia/app/helpers/demo_items_helper.rb")
+ assert_match_in_file(/helpers DemoItemsHelper/, "#{@apptmp}/warepedia/app/helpers/demo_items_helper.rb")
assert_file_exists("#{@apptmp}/warepedia/app/views/demo_items")
end
it 'should generate controller in specified app' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/SampleProject::Subby.controllers :demo_items do/m, @controller_path.gsub('app','subby'))
- assert_match_in_file(/SampleProject::Subby.helpers do/m, "#{@apptmp}/sample_project/subby/helpers/demo_items_helper.rb")
+ assert_match_in_file(/helpers DemoItemsHelper/m, "#{@apptmp}/sample_project/subby/helpers/demo_items_helper.rb")
assert_file_exists("#{@apptmp}/sample_project/subby/views/demo_items")
assert_match_in_file(/describe "DemoItemsController" do/m, @controller_test_path.gsub('app','subby'))
end
it 'should generate controller with specified layout' do
@@ -84,62 +97,69 @@
it 'should not fail if we do not have test component' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=none') }
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/SampleProject::App.controllers :demo_items do/m, @controller_path)
- assert_match_in_file(/SampleProject::App.helpers do/m, "#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
+ assert_match_in_file(/helpers DemoItemsHelper/m, "#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
assert_file_exists("#{@apptmp}/sample_project/app/views/demo_items")
assert_no_file_exists("#{@apptmp}/sample_project/test")
end
it 'should generate controller test for bacon' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/(\/\.\.){2}/m, @controller_test_path.gsub('app','subby'))
assert_match_in_file(/describe "DemoItemsController" do/m, @controller_test_path.gsub('app','subby'))
+ assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
end
it 'should generate controller test for riot' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=riot') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/(\/\.\.){2}/m, @controller_test_path.gsub('app','subby'))
assert_match_in_file(/context "DemoItemsController" do/m, @controller_test_path.gsub('app','subby'))
+ assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
end
it 'should generate controller test for minitest' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/(\/\.\.){2}/m, @controller_test_path.gsub('app', 'subby'))
assert_match_in_file(/describe "DemoItemsController" do/m, @controller_test_path.gsub('app', 'subby'))
+ assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
end
it 'should generate controller test for rspec' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/describe "DemoItemsController" do/m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
+ assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, "#{@apptmp}/sample_project/spec/subby/helpers/demo_items_helper_spec.rb")
end
it 'should generate controller test for shoulda' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
expected_pattern = /class DemoItemsControllerTest < Test::Unit::TestCase/m
assert_match_in_file(expected_pattern, @controller_test_path.gsub('app','subby'))
assert_match_in_file(/(\/\.\.){2}/m, @controller_test_path.gsub('app','subby'))
- assert_file_exists("#{@apptmp}/sample_project/test/subby/controllers/demo_items_controller_test.rb")
+ assert_match_in_file(/context "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
+ assert_file_exists(@helper_test_path.gsub('app','subby'))
+ assert_file_exists("#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
end
it 'should generate controller test for steak' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=steak') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
assert_match_in_file(/describe "DemoItemsController" do/m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
assert_match_in_file(/feature "DemoItemsController" do/m, "#{@apptmp}/sample_project/spec/subby/acceptance/controllers/demo_items_controller_spec.rb")
+ assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, "#{@apptmp}/sample_project/spec/subby/helpers/demo_items_helper_spec.rb")
end
it 'should generate controller test for cucumber' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=cucumber') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
@@ -153,10 +173,11 @@
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
assert_file_exists("#{@apptmp}/sample_project/app/views/demo_items")
assert_file_exists("#{@apptmp}/sample_project/app/controllers/demo_items.rb")
assert_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
assert_file_exists("#{@apptmp}/sample_project/spec/app/controllers/demo_items_controller_spec.rb")
+ assert_file_exists("#{@apptmp}/sample_project/spec/app/helpers/demo_items_helper_spec.rb")
end
# Controller action generation
it 'should generate actions for get:test post:yada' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
@@ -181,9 +202,18 @@
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
assert_no_file_exists(@controller_path)
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
assert_no_file_exists("#{@apptmp}/sample_project/spec/app/controllers/demo_items_controller_spec.rb")
+ end
+
+ it 'should destroy helper files with rspec' do
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
+ capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
+ capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
+ assert_no_file_exists(@controller_path)
+ assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
+ assert_no_file_exists("#{@apptmp}/sample_project/spec/app/helpers/demo_items_helper_spec.rb")
end
it 'should destroy controller files in sub apps' do
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }