diff options
Diffstat (limited to 'vendor/plugins/rake_tasks/tasks/spec.rake')
-rw-r--r-- | vendor/plugins/rake_tasks/tasks/spec.rake | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/vendor/plugins/rake_tasks/tasks/spec.rake b/vendor/plugins/rake_tasks/tasks/spec.rake deleted file mode 100644 index a4d608d1b..000000000 --- a/vendor/plugins/rake_tasks/tasks/spec.rake +++ /dev/null @@ -1,125 +0,0 @@ -namespace :spec do - unless defined?(RAILS_ROOT) - root_path = File.join(File.dirname(__FILE__), '..') - unless RUBY_PLATFORM =~ /mswin32/ - require 'pathname' - root_path = Pathname.new(root_path).cleanpath(true).to_s - end - RAILS_ROOT = root_path - end - - require "#{RAILS_ROOT}/config/environment" - - PROJ_DIR = "#{RAILS_ROOT}/app/" - - def view_ext - if ActionView::Base.const_defined?('DEFAULT_TEMPLATE_HANDLER_PREFERENCE') && - ActionView::Base::DEFAULT_TEMPLATE_HANDLER_PREFERENCE.include?(:erb) then - return ".html.erb" - else - return ".rhtml" - end - end - - def find_untested_ruby_files - files = {} - `find #{PROJ_DIR} -name '*.rb'`.split(/\n/).each do |file| - spec_file = file.sub('/app/', '/spec/').sub('.rb', '_spec.rb') - dir_type = File.dirname(file).split("/").last - next if dir_type == "helpers" - type = (dir_type == "models" ? "model" : "controller") - File.exists?(spec_file) ? next : files[spec_file] = type - end - files - end - - def find_untested_view_files - files = {} - `find #{PROJ_DIR} -name '*#{view_ext}'`.split(/\n/).each do |file| - spec_file = file.sub('/app/', '/spec/').sub(view_ext, "#{view_ext}_spec.rb") - type = File.dirname(file).split("/").last - File.exists?(spec_file) ? next : files[spec_file] = type - end - files - end - - desc "Check files in the app directory for corresponding test files in the spec directory." - task :check do - # XXX Don't check views, as we use controllers for view tests. Francis. - files = find_untested_ruby_files #.merge(find_untested_view_files) - unless files.empty? - puts "Missing test files:" - files.each {|file, type| puts " #{file}"} - puts - puts "Run the following command(s) to create the missing files:" - puts " rake spec:sync" - end - end - - desc "Check for missing test files in the spec directory and create them if they don't exist." - task :sync do - # Check if an application_controller file exists... hopefully it does not. - has_application_controller = File.exists?("#{PROJ_DIR}/controllers/application_controller.rb") - - files = find_untested_ruby_files - unless files.empty? - files.each do |file, type| - # Get rid of the _spec and file extension - name = File.basename(file).sub("_spec.rb", "").sub(/(_controller|_helper)/, "") - - has_controller = has_helper = false - if type == "controller" - has_controller = File.exists?("#{PROJ_DIR}/controllers/#{name}_controller.rb") - has_helper = File.exists?("#{PROJ_DIR}/helpers/#{name}_helper.rb") - end - - options = "--skip" - options += " --skip-migration" if type == "model" - puts `script/generate rspec_#{type} #{options} #{name} | grep create` - - unless has_controller - FileUtils.rm "#{PROJ_DIR}/controllers/#{name}_controller.rb" if File.exists?("#{PROJ_DIR}/controllers/#{name}_controller.rb") - FileUtils.rm "#{PROJ_DIR}/../spec/controllers/#{name}_controller_spec.rb" if File.exists?("#{PROJ_DIR}/../spec/controllers/#{name}_controller_spec.rb") - end - - unless has_helper - FileUtils.rm "#{PROJ_DIR}/helpers/#{name}_helper.rb" if File.exists?("#{PROJ_DIR}/helpers/#{name}_helper.rb") - FileUtils.rm "#{PROJ_DIR}/../spec/helpers/#{name}_helper_spec.rb" if File.exists?("#{PROJ_DIR}/../spec/helpers/#{name}_helper_spec.rb") - end - end - end - - files = find_untested_view_files - unless files.empty? - action_list = {} - files.each do |file, controller| - action = File.basename(file)[0..-9].sub(view_ext, "") - - if action_list[controller].blank? - action_list[controller] = action - else - action_list[controller] = "#{action_list[controller]} #{action}" - end - end - - action_list.each do |controller, actions| - next if actions.blank? - - has_controller = File.exists?("#{PROJ_DIR}/controllers/#{controller}_controller.rb") - has_helper = File.exists?("#{PROJ_DIR}/helpers/#{controller}_helper.rb") - - puts `script/generate rspec_controller --skip #{controller} #{actions} | grep create` - - unless has_controller - FileUtils.rm "#{PROJ_DIR}/controllers/#{controller}_controller.rb" - FileUtils.rm "#{PROJ_DIR}/../spec/controllers/#{controller}_controller_spec.rb" - end - - unless has_helper - FileUtils.rm "#{PROJ_DIR}/helpers/#{controller}_helper.rb" - FileUtils.rm "#{PROJ_DIR}/../spec/helpers/#{controller}_helper_spec.rb" - end - end - end - end -end |