summaryrefslogtreecommitdiff
path: root/chef-server-api/spec
diff options
context:
space:
mode:
authorTim Hinderliter <tim@opscode.com>2011-03-16 16:22:19 -0700
committerTim Hinderliter <tim@opscode.com>2011-03-17 16:58:27 -0700
commit79dff4b4d2b0c3e0bc7067960594b461d7d8cd55 (patch)
tree82ef0ceb94fac65048b5ba10cae25e9f082574e3 /chef-server-api/spec
parent492f1e11c837934f3270211111c5ce276113eb88 (diff)
downloadchef-79dff4b4d2b0c3e0bc7067960594b461d7d8cd55.tar.gz
Re-ordered methods in environments and nodes controllers; mild cleanup.
Added tests to environments controller spec tests to test pinning versions directly in the run_list. Additional patch related to last commit's bug fix, allowing RunListItem to be instantiated with a string like "recipe_name@1.2.3". It was allowing versions in the string before, but only like "recipe[recipe_name@1.2.3]". Updated copyright notices in some files.
Diffstat (limited to 'chef-server-api/spec')
-rw-r--r--chef-server-api/spec/unit/environments_controller_spec.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/chef-server-api/spec/unit/environments_controller_spec.rb b/chef-server-api/spec/unit/environments_controller_spec.rb
index 6c45765ae4..1ad75c48e1 100644
--- a/chef-server-api/spec/unit/environments_controller_spec.rb
+++ b/chef-server-api/spec/unit/environments_controller_spec.rb
@@ -34,6 +34,11 @@ describe "Environments controller" do
@filtered_cookbook_list_env2 = make_filtered_cookbook_hash(make_cookbook("cookbook1", "2.0.0"),
make_cookbook("cookbook2", "2.0.0"))
+ @filtered_cookbook_list_env_many_versions = make_filtered_cookbook_hash(make_cookbook("cookbook1", "1.0.0"),
+ make_cookbook("cookbook1", "2.0.0"),
+ make_cookbook("cookbook1", "3.0.0"),
+ make_cookbook("cookbook1", "4.0.0"))
+
@cookbook_deps_on_nosuch = make_cookbook("cookbook_deps_on_nosuch", "1.0.0")
@cookbook_deps_on_nosuch.metadata.depends("cookbook_nosuch")
@@ -67,6 +72,26 @@ describe "Environments controller" do
response["cookbook2"]['version'].should == "2.0.0"
end
+ it "should return the newest version of a cookbook when given multiple versions" do
+ Chef::Environment.should_receive(:cdb_load_filtered_cookbook_versions).with("env_many_versions").and_return(@filtered_cookbook_list_env_many_versions)
+ response = post_json("/environments/env_many_versions/cookbook_versions", {"run_list" => ["recipe[cookbook1]"]})
+
+ response.should be_kind_of(Hash)
+ response.keys.size.should == 1
+ response["cookbook1"].should_not == nil
+ response["cookbook1"]['version'].should == "4.0.0"
+ end
+
+ it "should return the asked-for, older version of a cookbook if the version is specified in the run_list" do
+ Chef::Environment.should_receive(:cdb_load_filtered_cookbook_versions).with("env_many_versions").and_return(@filtered_cookbook_list_env_many_versions)
+ response = post_json("/environments/env_many_versions/cookbook_versions", {"run_list" => ["recipe[cookbook1@1.0.0]"]})
+
+ response.should be_kind_of(Hash)
+ response.keys.size.should == 1
+ response["cookbook1"].should_not == nil
+ response["cookbook1"]['version'].should == "1.0.0"
+ end
+
it "should report no_such_cookbook if given a dependency on a non-existant cookbook" do
Chef::Environment.should_receive(:cdb_load_filtered_cookbook_versions).with("env1").and_return(@filtered_cookbook_list_env1)
expected_error = {