1
0
Fork 0
mirror of https://github.com/capistrano/capistrano synced 2023-03-27 23:21:18 -04:00

🐼 Added tests for after/before hooks

https://github.com/capistrano/capistrano/issues/1004

The changes of #938 affect the order the task executes. The "prerequisite" task seems to be running as
if it was defined in a after block, which makes sense, since it is now invoked by the task instead of being a prerequisite.

Since there were missed tests and @juanibiapina added simple tests in #1005, and were modified in this commit to cover
current business logic of the master.
This commit is contained in:
Juan Ibiapina 2014-04-15 12:26:21 -03:00 committed by Michael Nikitochkin
parent 486e375692
commit 9da7eb56a0
2 changed files with 76 additions and 0 deletions

View file

@ -6,6 +6,9 @@ Reverse Chronological Order:
https://github.com/capistrano/capistrano/compare/v3.2.1...HEAD
* Minor Changes
* Added tests for after/before hooks features (@juanibiapina, @miry)
## `3.2.1`
https://github.com/capistrano/capistrano/compare/v3.2.0...v3.2.1

View file

@ -0,0 +1,73 @@
require 'spec_helper'
module Capistrano
class DummyTaskEnhancements
include TaskEnhancements
end
describe TaskEnhancements do
let(:task_enhancements) { DummyTaskEnhancements.new }
describe 'ordering' do
after do
task.clear
before_task.clear
after_task.clear
Rake::Task.clear
end
let(:order) { [] }
let!(:task) do
Rake::Task.define_task('task', [:order]) do |t, args|
args['order'].push 'task'
end
end
let!(:before_task) do
Rake::Task.define_task('before_task') do
order.push 'before_task'
end
end
let!(:after_task) do
Rake::Task.define_task('after_task') do
order.push 'after_task'
end
end
it 'invokes in proper order if define after than before' do
task_enhancements.after('task', 'after_task')
task_enhancements.before('task', 'before_task')
Rake::Task['task'].invoke order
expect(order).to eq(['before_task', 'task', 'after_task'])
end
it 'invokes in proper order if define before than after' do
task_enhancements.before('task', 'before_task')
task_enhancements.after('task', 'after_task')
Rake::Task['task'].invoke order
expect(order).to eq(['before_task', 'task', 'after_task'])
end
it 'invokes in proper order and with arguments and block' do
task_enhancements.after('task', 'after_task_custom', :order) do |t, args|
order.push 'after_task'
end
task_enhancements.before('task', 'before_task_custom', :order) do |t, args|
order.push 'before_task'
end
Rake::Task['task'].invoke(order)
expect(order).to eq(['before_task', 'task', 'after_task'])
end
end
end
end