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") }