capistrano/spec/lib/capistrano/immutable_task_spec.rb

32 lines
804 B
Ruby

require "spec_helper"
require "rake"
require "capistrano/immutable_task"
module Capistrano
describe ImmutableTask do
after do
# Ensure that any tasks we create in these tests don't pollute other tests
Rake::Task.clear
end
it "prints warning and raises when task is enhanced" do
extend(Rake::DSL)
load_defaults = Rake::Task.define_task("load:defaults")
load_defaults.extend(Capistrano::ImmutableTask)
$stderr.expects(:puts).with do |message|
message =~ /^WARNING: load:defaults has already been invoked/
end
expect {
namespace :load do
task :defaults do
# Never reached since load_defaults is frozen and can't be enhanced
end
end
}.to raise_error(/frozen/i)
end
end
end