diff options
author | Tim Hinderliter <tim@opscode.com> | 2011-03-16 16:22:19 -0700 |
---|---|---|
committer | Tim Hinderliter <tim@opscode.com> | 2011-03-17 16:58:27 -0700 |
commit | 79dff4b4d2b0c3e0bc7067960594b461d7d8cd55 (patch) | |
tree | 82ef0ceb94fac65048b5ba10cae25e9f082574e3 /chef-server-api/spec | |
parent | 492f1e11c837934f3270211111c5ce276113eb88 (diff) | |
download | chef-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.rb | 25 |
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 = { |