From e16e85cb236db0e9fd3fb818b585ddb7fbeb4cf3 Mon Sep 17 00:00:00 2001 From: Carl Douglas Date: Tue, 14 Jun 2016 16:49:45 +1200 Subject: [PATCH] Example of declaring a capistrano recipe in an rspec test, running a task and verifying what was run. --- easy-deployment.gemspec | 1 + spec/backup_spec.rb | 23 +++++++++++++++++++++++ spec/spec_helper.rb | 5 +++++ 3 files changed, 29 insertions(+) create mode 100644 spec/backup_spec.rb diff --git a/easy-deployment.gemspec b/easy-deployment.gemspec index 62429d1..1cf3613 100644 --- a/easy-deployment.gemspec +++ b/easy-deployment.gemspec @@ -21,4 +21,5 @@ Gem::Specification.new do |gem| gem.add_development_dependency 'bundler' gem.add_development_dependency 'rspec', '~> 2.0' + gem.add_development_dependency 'capistrano-spec' end diff --git a/spec/backup_spec.rb b/spec/backup_spec.rb new file mode 100644 index 0000000..ca5f385 --- /dev/null +++ b/spec/backup_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper' +require 'capistrano' + +describe Easy::Deployment, "Easy Deployment backup tasks" do + + before do + @config = Capistrano::Configuration.new + @config.extend(Capistrano::Spec::ConfigurationExtension) + end + + it "should create a backup directory" do + + @config.load do + require 'easy/deployment/backup' + + set :shared_path, 'rspec' + end + + @config.find_and_execute_task('easy:backup:setup') + + @config.should have_run "mkdir -p rspec/backup/data" + end +end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3ee85fc..29b2ec0 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -10,6 +10,11 @@ require 'easy-deployment' +require 'capistrano-spec' + RSpec.configure do |config| config.mock_with :rspec + + config.include Capistrano::Spec::Matchers + config.include Capistrano::Spec::Helpers end