|
| 1 | +STEAK_SETUP = (<<-TEST).gsub(/^ {12}/, '') unless defined?(STEAK_SETUP) |
| 2 | +PADRINO_ENV = 'test' unless defined?(PADRINO_ENV) |
| 3 | +require File.expand_path(File.dirname(__FILE__) + "/../config/boot") |
| 4 | +
|
| 5 | +RSpec.configure do |conf| |
| 6 | + conf.include Rack::Test::Methods |
| 7 | + conf.include Capybara |
| 8 | +end |
| 9 | +
|
| 10 | +def app |
| 11 | + ## |
| 12 | + # You can handle all padrino applications using instead: |
| 13 | + # Padrino.application |
| 14 | + CLASS_NAME.tap { |app| } |
| 15 | +end |
| 16 | +
|
| 17 | +Capybara.app = app |
| 18 | +TEST |
| 19 | + |
| 20 | +STEAK_CONTROLLER_TEST = (<<-TEST).gsub(/^ {12}/, '') unless defined?(STEAK_CONTROLLER_TEST) |
| 21 | +require 'spec_helper' |
| 22 | +
|
| 23 | +describe "!NAME!Controller" do |
| 24 | + before do |
| 25 | + get "/" |
| 26 | + end |
| 27 | +
|
| 28 | + it "returns hello world" do |
| 29 | + last_response.body.should == "Hello World" |
| 30 | + end |
| 31 | +end |
| 32 | +TEST |
| 33 | + |
| 34 | +STEAK_CONTROLLER_ACCEPTANCE_TEST = (<<-TEST).gsub(/^ {12}/, '') unless defined?(STEAK_CONTROLLER_ACCEPTANCE_TEST) |
| 35 | +require 'spec_helper' |
| 36 | +
|
| 37 | +feature "!NAME!Controller" do |
| 38 | + background do |
| 39 | + visit "/" |
| 40 | + end |
| 41 | +
|
| 42 | + scenario "returns hello world" do |
| 43 | + page.should.have_content == "Hello World" |
| 44 | + end |
| 45 | +end |
| 46 | +TEST |
| 47 | + |
| 48 | +STEAK_RAKE = (<<-TEST).gsub(/^ {12}/, '') unless defined?(STEAK_RAKE) |
| 49 | +require 'rspec/core/rake_task' |
| 50 | +
|
| 51 | +spec_tasks = Dir['spec/*/'].map { |d| File.basename(d) } |
| 52 | +
|
| 53 | +spec_tasks.each do |folder| |
| 54 | + RSpec::Core::RakeTask.new("spec:\#{folder}") do |t| |
| 55 | + t.pattern = "./spec/\#{folder}/**/*_spec.rb" |
| 56 | + t.rspec_opts = %w(-fs --color) |
| 57 | + end |
| 58 | +end |
| 59 | +
|
| 60 | +desc "Run complete application spec suite" |
| 61 | +task 'spec' => spec_tasks.map { |f| "spec:\#{f}" } |
| 62 | +TEST |
| 63 | + |
| 64 | +STEAK_MODEL_TEST = (<<-TEST).gsub(/^ {12}/, '') unless defined?(STEAK_MODEL_TEST) |
| 65 | +require 'spec_helper' |
| 66 | +
|
| 67 | +describe !NAME! do |
| 68 | +end |
| 69 | +TEST |
| 70 | + |
| 71 | +def setup_test |
| 72 | + require_dependencies 'rack-test', :require => 'rack/test', :group => 'test' |
| 73 | + require_dependencies 'steak', :group => 'test' |
| 74 | + insert_test_suite_setup STEAK_SETUP, :path => "spec/spec_helper.rb" |
| 75 | + create_file destination_root("spec/spec.rake"), STEAK_RAKE |
| 76 | +end |
| 77 | + |
| 78 | +# Generates a controller test given the controllers name |
| 79 | +def generate_controller_test(name) |
| 80 | + spec_contents = STEAK_CONTROLLER_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize) |
| 81 | + controller_spec_path = File.join('spec',options[:app],'controllers',"#{name.to_s.underscore}_controller_spec.rb") |
| 82 | + create_file destination_root(controller_spec_path), spec_contents, :skip => true |
| 83 | + |
| 84 | + acceptance_contents = STEAK_CONTROLLER_ACCEPTANCE_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize) |
| 85 | + controller_acceptance_path = File.join('spec',options[:app],'acceptance','controllers',"#{name.to_s.underscore}_controller_spec.rb") |
| 86 | + create_file destination_root(controller_acceptance_path), acceptance_contents, :skip => true |
| 87 | +end |
| 88 | + |
| 89 | +def generate_model_test(name) |
| 90 | + rspec_contents = STEAK_MODEL_TEST.gsub(/!NAME!/, name.to_s.underscore.camelize).gsub(/!DNAME!/, name.to_s.underscore) |
| 91 | + model_spec_path = File.join('spec',options[:app],'models',"#{name.to_s.underscore}_spec.rb") |
| 92 | + create_file destination_root(model_spec_path), rspec_contents, :skip => true |
| 93 | +end |
0 commit comments