rspec_candy 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +5 -4
- data/README.md +5 -13
- data/Rakefile +18 -25
- data/gemfiles/Gemfile.rspec1-rails2 +17 -0
- data/gemfiles/Gemfile.rspec1-rails2.lock +31 -0
- data/gemfiles/Gemfile.rspec2-rails3 +9 -0
- data/gemfiles/Gemfile.rspec2-rails3.lock +51 -0
- data/gemfiles/Gemfile.rspec3-rails4 +9 -0
- data/gemfiles/Gemfile.rspec3-rails4.lock +61 -0
- data/lib/rspec_candy/base.rb +1 -0
- data/lib/rspec_candy/helpers.rb +1 -1
- data/lib/rspec_candy/helpers/it_should_act_like.rb +2 -2
- data/lib/rspec_candy/helpers/rails/it_should_run_callbacks.rb +6 -26
- data/lib/rspec_candy/helpers/rails/store_with_values.rb +7 -2
- data/lib/rspec_candy/helpers/stub_any_instance.rb +2 -2
- data/lib/rspec_candy/switcher.rb +27 -15
- data/lib/rspec_candy/version.rb +1 -1
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/disposable_copy_spec.rb +1 -1
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/it_should_act_like_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/new_with_stubs_spec.rb +0 -0
- data/spec/rspec_candy/helpers/rails/it_should_run_callbacks_spec.rb +84 -0
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/rails/prevent_storage_spec.rb +1 -1
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/rails/store_with_values_spec.rb +6 -2
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/should_receive_and_execute_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/should_receive_and_return_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/should_receive_chain_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/stub_any_instance_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/helpers/stub_existing_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/matchers/be_same_number_as_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/matchers/be_same_second_as_spec.rb +0 -0
- data/spec/{shared/rspec_candy → rspec_candy}/matchers/include_hash_spec.rb +0 -0
- data/spec/{rspec1/app_root/config/environments/test.rb → shared_examples/.keep} +0 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/support/database.rb +15 -0
- data/spec/support/database_cleaner.rb +20 -0
- data/spec/{shared/support → support}/matchers/pass_as_describe_block.rb +14 -3
- data/spec/{shared/support → support}/matchers/pass_as_example.rb +2 -0
- data/spec/{shared/app_root/app/models/model.rb → support/models.rb} +19 -0
- metadata +74 -123
- data/spec/rspec1/Gemfile +0 -16
- data/spec/rspec1/Gemfile.lock +0 -74
- data/spec/rspec1/Rakefile +0 -11
- data/spec/rspec1/app_root/config/boot.rb +0 -114
- data/spec/rspec1/app_root/config/database.yml +0 -4
- data/spec/rspec1/app_root/config/environment.rb +0 -14
- data/spec/rspec1/app_root/config/initializers/state_machine.rb +0 -1
- data/spec/rspec1/app_root/config/routes.rb +0 -4
- data/spec/rspec1/rcov.opts +0 -2
- data/spec/rspec1/spec.opts +0 -4
- data/spec/rspec1/spec/spec_helper.rb +0 -25
- data/spec/rspec1/spec/switcher_spec.rb +0 -26
- data/spec/rspec2/.rspec +0 -2
- data/spec/rspec2/Gemfile +0 -14
- data/spec/rspec2/Gemfile.lock +0 -137
- data/spec/rspec2/Rakefile +0 -11
- data/spec/rspec2/app_root/.gitignore +0 -4
- data/spec/rspec2/app_root/config/application.rb +0 -32
- data/spec/rspec2/app_root/config/boot.rb +0 -13
- data/spec/rspec2/app_root/config/database.yml +0 -4
- data/spec/rspec2/app_root/config/environment.rb +0 -5
- data/spec/rspec2/app_root/config/environments/test.rb +0 -0
- data/spec/rspec2/app_root/config/initializers/backtrace_silencers.rb +0 -7
- data/spec/rspec2/app_root/config/initializers/inflections.rb +0 -10
- data/spec/rspec2/app_root/config/initializers/mime_types.rb +0 -5
- data/spec/rspec2/app_root/config/initializers/secret_token.rb +0 -7
- data/spec/rspec2/app_root/config/initializers/session_store.rb +0 -8
- data/spec/rspec2/app_root/config/initializers/state_machine.rb +0 -1
- data/spec/rspec2/app_root/config/locales/en.yml +0 -5
- data/spec/rspec2/app_root/config/routes.rb +0 -58
- data/spec/rspec2/rcov.opts +0 -2
- data/spec/rspec2/spec/spec_helper.rb +0 -24
- data/spec/rspec2/spec/switcher_spec.rb +0 -21
- data/spec/shared/app_root/app/controllers/application_controller.rb +0 -2
- data/spec/shared/app_root/app/models/state_machine_model.rb +0 -53
- data/spec/shared/app_root/app/models/sti_child.rb +0 -3
- data/spec/shared/app_root/app/models/sti_parent.rb +0 -12
- data/spec/shared/app_root/config/initializers/state_machine.rb +0 -1
- data/spec/shared/app_root/db/migrate/001_create_model.rb +0 -14
- data/spec/shared/app_root/db/migrate/002_create_state_machine_model.rb +0 -13
- data/spec/shared/app_root/db/migrate/003_create_sti_model.rb +0 -14
- data/spec/shared/rspec_candy/helpers/rails/it_should_run_callbacks_spec.rb +0 -158
data/spec/rspec2/Rakefile
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
require 'rake'
|
|
2
|
-
require 'rspec/core/rake_task'
|
|
3
|
-
|
|
4
|
-
desc 'Default: Run all specs for a specific rails version.'
|
|
5
|
-
task :default => :spec
|
|
6
|
-
|
|
7
|
-
desc "Run all specs for a specific rails version"
|
|
8
|
-
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
9
|
-
t.verbose = false
|
|
10
|
-
t.pattern = defined?(SPEC) ? SPEC : ['**/*_spec.rb', '../shared/**/*_spec.rb']
|
|
11
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
require File.expand_path('../boot', __FILE__)
|
|
2
|
-
|
|
3
|
-
require 'rails/all'
|
|
4
|
-
|
|
5
|
-
# If you have a Gemfile, require the gems listed there, including any gems
|
|
6
|
-
# you've limited to :test, :development, or :production.
|
|
7
|
-
Bundler.require(:default, Rails.env) if defined?(Bundler)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
module HasDefaultSpecApp
|
|
11
|
-
class Application < Rails::Application
|
|
12
|
-
config.encoding = "utf-8"
|
|
13
|
-
|
|
14
|
-
config.cache_classes = true
|
|
15
|
-
config.whiny_nils = true
|
|
16
|
-
|
|
17
|
-
config.consider_all_requests_local = true
|
|
18
|
-
config.action_controller.perform_caching = false
|
|
19
|
-
|
|
20
|
-
config.action_dispatch.show_exceptions = false
|
|
21
|
-
|
|
22
|
-
config.action_controller.allow_forgery_protection = false
|
|
23
|
-
|
|
24
|
-
config.action_mailer.delivery_method = :test
|
|
25
|
-
|
|
26
|
-
config.active_support.deprecation = :stderr
|
|
27
|
-
|
|
28
|
-
config.root = File.expand_path('../..', __FILE__)
|
|
29
|
-
|
|
30
|
-
# railties.plugins << Rails::Plugin.new(File.expand_path('../../../../..', __FILE__))
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
require 'rubygems'
|
|
2
|
-
|
|
3
|
-
# Set up gems listed in the Gemfile.
|
|
4
|
-
gemfile = File.expand_path('../../Gemfile', __FILE__)
|
|
5
|
-
begin
|
|
6
|
-
ENV['BUNDLE_GEMFILE'] = gemfile
|
|
7
|
-
require 'bundler'
|
|
8
|
-
Bundler.setup
|
|
9
|
-
rescue Bundler::GemNotFound => e
|
|
10
|
-
STDERR.puts e.message
|
|
11
|
-
STDERR.puts "Try running `bundle install`."
|
|
12
|
-
exit!
|
|
13
|
-
end if File.exist?(gemfile)
|
|
File without changes
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
|
2
|
-
|
|
3
|
-
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
|
|
4
|
-
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
|
|
5
|
-
|
|
6
|
-
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
|
|
7
|
-
# Rails.backtrace_cleaner.remove_silencers!
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
|
2
|
-
|
|
3
|
-
# Add new inflection rules using the following format
|
|
4
|
-
# (all these examples are active by default):
|
|
5
|
-
# ActiveSupport::Inflector.inflections do |inflect|
|
|
6
|
-
# inflect.plural /^(ox)$/i, '\1en'
|
|
7
|
-
# inflect.singular /^(ox)en/i, '\1'
|
|
8
|
-
# inflect.irregular 'person', 'people'
|
|
9
|
-
# inflect.uncountable %w( fish sheep )
|
|
10
|
-
# end
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
|
2
|
-
|
|
3
|
-
# Your secret key for verifying the integrity of signed cookies.
|
|
4
|
-
# If you change this key, all old signed cookies will become invalid!
|
|
5
|
-
# Make sure the secret is at least 30 characters and all random,
|
|
6
|
-
# no regular words or you'll be exposed to dictionary attacks.
|
|
7
|
-
HasDefaultSpecApp::Application.config.secret_token = 'cb014a08a45243e7143f31e04774c342c1fba329fd594ae1a480d8283b1a851f425dc08044311fb4be6d000b6e6681de7c76d19148419a5ffa0a9f84556d3b33'
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Be sure to restart your server when you modify this file.
|
|
2
|
-
|
|
3
|
-
HasDefaultSpecApp::Application.config.session_store :cookie_store, :key => '_app_root_session'
|
|
4
|
-
|
|
5
|
-
# Use the database for sessions instead of the cookie-based default,
|
|
6
|
-
# which shouldn't be used to store highly confidential information
|
|
7
|
-
# (create the session table with "rails generate session_migration")
|
|
8
|
-
# HasDefaultSpecApp::Application.config.session_store :active_record_store
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Bundler.require(:state_machine) if ENV['REQUIRE_STATE_MACHINE'] == 'true'
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
HasDefaultSpecApp::Application.routes.draw do
|
|
2
|
-
# The priority is based upon order of creation:
|
|
3
|
-
# first created -> highest priority.
|
|
4
|
-
|
|
5
|
-
# Sample of regular route:
|
|
6
|
-
# match 'products/:id' => 'catalog#view'
|
|
7
|
-
# Keep in mind you can assign values other than :controller and :action
|
|
8
|
-
|
|
9
|
-
# Sample of named route:
|
|
10
|
-
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
|
|
11
|
-
# This route can be invoked with purchase_url(:id => product.id)
|
|
12
|
-
|
|
13
|
-
# Sample resource route (maps HTTP verbs to controller actions automatically):
|
|
14
|
-
# resources :products
|
|
15
|
-
|
|
16
|
-
# Sample resource route with options:
|
|
17
|
-
# resources :products do
|
|
18
|
-
# member do
|
|
19
|
-
# get 'short'
|
|
20
|
-
# post 'toggle'
|
|
21
|
-
# end
|
|
22
|
-
#
|
|
23
|
-
# collection do
|
|
24
|
-
# get 'sold'
|
|
25
|
-
# end
|
|
26
|
-
# end
|
|
27
|
-
|
|
28
|
-
# Sample resource route with sub-resources:
|
|
29
|
-
# resources :products do
|
|
30
|
-
# resources :comments, :sales
|
|
31
|
-
# resource :seller
|
|
32
|
-
# end
|
|
33
|
-
|
|
34
|
-
# Sample resource route with more complex sub-resources
|
|
35
|
-
# resources :products do
|
|
36
|
-
# resources :comments
|
|
37
|
-
# resources :sales do
|
|
38
|
-
# get 'recent', :on => :collection
|
|
39
|
-
# end
|
|
40
|
-
# end
|
|
41
|
-
|
|
42
|
-
# Sample resource route within a namespace:
|
|
43
|
-
# namespace :admin do
|
|
44
|
-
# # Directs /admin/products/* to Admin::ProductsController
|
|
45
|
-
# # (app/controllers/admin/products_controller.rb)
|
|
46
|
-
# resources :products
|
|
47
|
-
# end
|
|
48
|
-
|
|
49
|
-
# You can have the root of your site routed with "root"
|
|
50
|
-
# just remember to delete public/index.html.
|
|
51
|
-
# root :to => "welcome#index"
|
|
52
|
-
|
|
53
|
-
# See how all your routes lay out with "rake routes"
|
|
54
|
-
|
|
55
|
-
# This is a legacy wild controller route that's not recommended for RESTful applications.
|
|
56
|
-
# Note: This route will make all actions in every controller accessible via GET requests.
|
|
57
|
-
match ':controller(/:action(/:id(.:format)))'
|
|
58
|
-
end
|
data/spec/rspec2/rcov.opts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
$: << File.join(File.dirname(__FILE__), "/../lib" )
|
|
2
|
-
|
|
3
|
-
ENV['RAILS_ENV'] = 'test'
|
|
4
|
-
ENV['RAILS_ROOT'] = 'app_root'
|
|
5
|
-
|
|
6
|
-
# Load the Rails environment and testing framework
|
|
7
|
-
require "#{File.dirname(__FILE__)}/../app_root/config/environment"
|
|
8
|
-
require 'rspec/rails'
|
|
9
|
-
|
|
10
|
-
# Load dependencies
|
|
11
|
-
require 'rspec_candy/all'
|
|
12
|
-
|
|
13
|
-
# Require support code
|
|
14
|
-
Dir["../shared/support/**/*.rb"].each {|f| require f}
|
|
15
|
-
|
|
16
|
-
# Run the migrations
|
|
17
|
-
print "\033[30m" # dark gray text
|
|
18
|
-
ActiveRecord::Migrator.migrate("#{Rails.root}/db/migrate")
|
|
19
|
-
print "\033[0m"
|
|
20
|
-
|
|
21
|
-
RSpec.configure do |config|
|
|
22
|
-
config.use_transactional_fixtures = true
|
|
23
|
-
config.use_instantiated_fixtures = false
|
|
24
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe RSpecCandy::Switcher do
|
|
4
|
-
|
|
5
|
-
describe "#rspec_version" do
|
|
6
|
-
|
|
7
|
-
it "should detect rspec2" do
|
|
8
|
-
RSpecCandy::Switcher.rspec_version.should == :rspec2
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
describe '#rspec_root' do
|
|
14
|
-
|
|
15
|
-
it 'should return the RSpec module' do
|
|
16
|
-
RSpecCandy::Switcher.rspec_root.should == RSpec
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
class StateMachineModel < ActiveRecord::Base
|
|
2
|
-
|
|
3
|
-
if respond_to?(:state_machine)
|
|
4
|
-
|
|
5
|
-
state_machine :initial => :state1 do
|
|
6
|
-
|
|
7
|
-
state :state1
|
|
8
|
-
|
|
9
|
-
state :state2
|
|
10
|
-
|
|
11
|
-
state :state3
|
|
12
|
-
|
|
13
|
-
event :event do
|
|
14
|
-
transition :state1 => :state2
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
event :another_event do
|
|
18
|
-
transition :state1 => :state3
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
after_transition :state1 => :state2, :do => :event_callback
|
|
22
|
-
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
state_machine :custom_state, :initial => :state1 do
|
|
26
|
-
|
|
27
|
-
state :state1
|
|
28
|
-
|
|
29
|
-
state :state2
|
|
30
|
-
|
|
31
|
-
state :state3
|
|
32
|
-
|
|
33
|
-
event :event do
|
|
34
|
-
transition :state1 => :state2
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
event :another_event do
|
|
38
|
-
transition :state1 => :state3
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
after_transition :state1 => :state2, :do => :custom_state_event_callback
|
|
42
|
-
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def event_callback
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
def custom_state_event_callback
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Bundler.require(:state_machine) if ENV['REQUIRE_STATE_MACHINE'] == 'true'
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe RSpecCandy::Helpers::Rails::ItShouldRunCallbacks do
|
|
4
|
-
|
|
5
|
-
describe '#it_should_run_callbacks' do
|
|
6
|
-
|
|
7
|
-
context 'for an app without state_machine' do
|
|
8
|
-
|
|
9
|
-
it 'should pass if all callbacks have been run' do
|
|
10
|
-
<<-describe_block.should pass_as_describe_block
|
|
11
|
-
describe Model, '#after_save' do
|
|
12
|
-
it_should_run_callbacks :after_save_callback2, :after_save_callback1
|
|
13
|
-
end
|
|
14
|
-
describe_block
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it 'should only attempt to run the proper callbacks have been run' do
|
|
18
|
-
<<-describe_block.should fail_as_describe_block
|
|
19
|
-
describe Model, '#before_save' do
|
|
20
|
-
it_should_run_callbacks :after_save_callback2, :after_save_callback1
|
|
21
|
-
end
|
|
22
|
-
describe_block
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
it 'should not pass if a callback has not been run' do
|
|
26
|
-
<<-describe_block.should fail_as_describe_block
|
|
27
|
-
describe Model, '#after_create' do
|
|
28
|
-
it_should_run_callbacks :after_create_callback, :unknown_callback
|
|
29
|
-
end
|
|
30
|
-
describe_block
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
it 'should not actually execute the callbacks' do
|
|
34
|
-
<<-describe_block.should pass_as_describe_block
|
|
35
|
-
def Model.after_save_callback2
|
|
36
|
-
raise "called!"
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
describe Model, '#after_save' do
|
|
40
|
-
it_should_run_callbacks :after_save_callback1
|
|
41
|
-
end
|
|
42
|
-
describe_block
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
it 'should not parse state_machine callbacks being present' do
|
|
46
|
-
<<-describe_block.should fail_as_describe_block
|
|
47
|
-
describe StateMachineModel, '#event from :state1 to :state2' do
|
|
48
|
-
it_should_run_callbacks :event_callback
|
|
49
|
-
end
|
|
50
|
-
describe_block
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
context 'for an app with state_machine' do
|
|
56
|
-
|
|
57
|
-
before do
|
|
58
|
-
ENV['REQUIRE_STATE_MACHINE'] = 'true'
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
after do
|
|
62
|
-
ENV['REQUIRE_STATE_MACHINE'] = 'false'
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
it 'should pass if all callbacks have been run' do
|
|
66
|
-
<<-describe_block.should pass_as_describe_block
|
|
67
|
-
describe Model, '#after_save' do
|
|
68
|
-
it_should_run_callbacks :after_save_callback2, :after_save_callback1
|
|
69
|
-
end
|
|
70
|
-
describe_block
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
it 'should not pass if a callback has not been run' do
|
|
74
|
-
<<-describe_block.should fail_as_describe_block
|
|
75
|
-
describe Model, '#after_create' do
|
|
76
|
-
it_should_run_callbacks :after_create_callback, :unknown_callback
|
|
77
|
-
end
|
|
78
|
-
describe_block
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
it 'should also run state machine callbacks and pass if they are called if StateMachine is present' do
|
|
83
|
-
<<-describe_block.should pass_as_describe_block
|
|
84
|
-
describe StateMachineModel, '#event from :state1 to :state2' do
|
|
85
|
-
it_should_run_callbacks :event_callback
|
|
86
|
-
end
|
|
87
|
-
describe_block
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
it 'should also run state machine callbacks and fail if they are not called if StateMachine is present' do
|
|
91
|
-
<<-describe_block.should fail_as_describe_block
|
|
92
|
-
describe StateMachineModel, '#event from :state1 to :state3' do
|
|
93
|
-
it_should_run_callbacks :event_callback
|
|
94
|
-
end
|
|
95
|
-
describe_block
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
it 'should also run state machine callbacks for a state machine with a custom name and pass if they are called if StateMachine is present' do
|
|
99
|
-
<<-describe_block.should pass_as_describe_block
|
|
100
|
-
describe StateMachineModel, '#event on :custom_state from :state1 to :state2' do
|
|
101
|
-
it_should_run_callbacks :custom_state_event_callback
|
|
102
|
-
end
|
|
103
|
-
describe_block
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
it 'should also run state machine callbacks for a state machine with a custom name and fail if they are not called if StateMachine is present' do
|
|
107
|
-
<<-describe_block.should fail_as_describe_block
|
|
108
|
-
describe StateMachineModel, '#event on :custom_state from :state1 to :state3' do
|
|
109
|
-
it_should_run_callbacks :custom_state_event_callback
|
|
110
|
-
end
|
|
111
|
-
describe_block
|
|
112
|
-
end
|
|
113
|
-
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
describe '#it_should_run_callbacks_in_order' do
|
|
120
|
-
|
|
121
|
-
supported_callbacks = case RSpecCandy::Switcher.rspec_version
|
|
122
|
-
when :rspec1
|
|
123
|
-
%w[before after]
|
|
124
|
-
when :rspec2
|
|
125
|
-
%w[before after around]
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
supported_callbacks.each do |kind|
|
|
129
|
-
|
|
130
|
-
it "should pass if all #{kind} callbacks are run in order" do
|
|
131
|
-
<<-describe_block.should pass_as_describe_block
|
|
132
|
-
describe Model, '##{kind}_save' do
|
|
133
|
-
it_should_run_callbacks_in_order :#{kind}_save_callback1, :#{kind}_save_callback2
|
|
134
|
-
end
|
|
135
|
-
describe_block
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
it "should not pass if a #{kind} callback has not been run" do
|
|
139
|
-
<<-describe_block.should fail_as_describe_block
|
|
140
|
-
describe Model, '##{kind}_create' do
|
|
141
|
-
it_should_run_callbacks_in_order :#{kind}_create_callback, :unknown_callback
|
|
142
|
-
end
|
|
143
|
-
describe_block
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
it "should not pass if #{kind} callbacks are run out of order" do
|
|
147
|
-
<<-describe_block.should fail_as_describe_block
|
|
148
|
-
describe Model, '##{kind}_save' do
|
|
149
|
-
it_should_run_callbacks_in_order :#{kind}_save_callback2, :#{kind}_save_callback1
|
|
150
|
-
end
|
|
151
|
-
describe_block
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
end
|