summaryrefslogtreecommitdiff
path: root/lib/chef_zero/rspec.rb
diff options
context:
space:
mode:
authorjkeiser <jkeiser@opscode.com>2013-01-20 22:19:57 -0800
committerjkeiser <jkeiser@opscode.com>2013-01-20 22:19:57 -0800
commit0d5fc37486af0881429a0d60d2a407e9698a28d4 (patch)
tree7118527cd1aaeafe3c575cf7aa6f0da52a0f78b5 /lib/chef_zero/rspec.rb
parente20a72a1eb57d8f0fb25e8c253478608fa09a8a4 (diff)
downloadchef-zero-0d5fc37486af0881429a0d60d2a407e9698a28d4.tar.gz
Add support for request/response verification to rspec api
Diffstat (limited to 'lib/chef_zero/rspec.rb')
-rw-r--r--lib/chef_zero/rspec.rb13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/chef_zero/rspec.rb b/lib/chef_zero/rspec.rb
index e5e8c24..3eea3fc 100644
--- a/lib/chef_zero/rspec.rb
+++ b/lib/chef_zero/rspec.rb
@@ -1,6 +1,7 @@
require 'thin'
require 'tempfile'
require 'chef_zero/server'
+require 'chef_zero/rest_request'
require 'chef/config'
module ChefZero
@@ -17,6 +18,12 @@ module ChefZero
def self.client_key=(value)
@client_key = value
end
+ def self.request_log
+ @request_log ||= []
+ end
+ def self.clear_request_log
+ @request_log = []
+ end
def when_the_chef_server(description, *tags, &block)
context "When the Chef server #{description}", *tags do
@@ -24,15 +31,19 @@ module ChefZero
unless ChefZero::RSpec.server
# Set up configuration so that clients will point to the server
Thin::Logging.silent = true
- ChefZero::RSpec.server = ChefZero::Server.new(:port => 8889, :signals => false)
+ ChefZero::RSpec.server = ChefZero::Server.new(:port => 8889, :signals => false, :log_requests => true)
ChefZero::RSpec.client_key = Tempfile.new(['chef_zero_client_key', '.pem'])
ChefZero::RSpec.client_key.write(ChefZero::PRIVATE_KEY)
ChefZero::RSpec.client_key.close
# Start the server
ChefZero::RSpec.server.start_background
+ ChefZero::RSpec.server.on_response do |request, response|
+ ChefZero::RSpec.request_log << [ request, response ]
+ end
else
ChefZero::RSpec.server.clear_data
end
+ ChefZero::RSpec.clear_request_log
@old_chef_server_url = Chef::Config.chef_server_url
@old_node_name = Chef::Config.node_name