Commit 9485862

mo khan <mo@mokhan.ca>
2015-11-11 20:35:25
fix broken unit tests.
1 parent 7e3566c
recipes/user.rb
@@ -1,6 +1,6 @@
-user node['stronglifters']['username'] do
+user node["stronglifters"]["username"] do
   supports manage_home: true
   comment "rails user"
-  home "/home/#{node['stronglifters']['username']}"
+  home "/home/#{node["stronglifters"]["username"]}"
   shell "/bin/bash"
 end
spec/aws_spec.rb
@@ -1,25 +1,25 @@
 describe "stronglifters::aws" do
   subject do
     ChefSpec::SoloRunner.new do |node|
-      node.set['aws']['username'] = username
+      node.set["stronglifters"]["username"] = username
     end.converge(described_recipe)
   end
 
   let(:username) { FFaker::Internet.user_name }
 
-  it 'installs python-ip' do
-    expect(subject).to install_package('python-pip')
+  it "installs python-ip" do
+    expect(subject).to install_package("python-pip")
   end
 
-  it 'installs awscli' do
-    expect(subject).to run_execute('pip install awscli')
+  it "installs awscli" do
+    expect(subject).to run_execute("pip install awscli")
   end
 
-  it 'installs the config file' do
+  it "installs the config file" do
     expect(subject).to create_template("/home/#{username}/.aws/config")
   end
 
-  it 'installs the credentials file' do
+  it "installs the credentials file" do
     expect(subject).to create_template("/home/#{username}/.aws/credentials")
   end
 end
spec/default_spec.rb
@@ -1,42 +1,13 @@
-describe 'stronglifters::default' do
+describe "stronglifters::default" do
   subject do
     ChefSpec::SoloRunner.new do |node|
+      node.set["stronglifters"]["packages"] = packages
     end.converge(described_recipe)
   end
 
-  let(:packages) do
-    [
-      "curl",
-      "libcurl3",
-      "libcurl3-gnutls",
-      "libcurl4-openssl-dev",
-      "git-core",
-      "python-software-properties",
-      "build-essential",
-      "tklib",
-      "zlib1g-dev",
-      "libssl-dev",
-      "libxml2",
-      "libxml2-dev",
-      "libxslt1-dev",
-      "gawk",
-      "libreadline6-dev",
-      "libyaml-dev",
-      "autoconf",
-      "libgdbm-dev",
-      "libncurses5-dev",
-      "automake",
-      "libtool",
-      "bison",
-      "pkg-config",
-      "libffi-dev",
-      "vim",
-    ]
-  end
+  let(:packages) { [ "vim" ] }
 
-  it 'installs the base packages' do
-    packages.each do |package|
-      expect(subject).to install_package(package)
-    end
+  it "installs the base packages" do
+    expect(subject).to install_package(packages)
   end
 end
spec/nginx_spec.rb
@@ -1,69 +1,49 @@
-describe 'stronglifters::nginx' do
+describe "stronglifters::nginx" do
   let(:domain) { "www.example.com" }
-  let(:chef_run) do
+  subject do
     ChefSpec::SoloRunner.new do |node|
-      node.set['nginx']['domain'] = domain
-      node.set['lsb']['codename'] = 'trusty'
+      node.set["nginx"]["domain"] = domain
     end.converge(described_recipe)
   end
 
-  it 'installs nginx' do
-    expect(chef_run).to install_package("nginx")
+  it "installs nginx" do
+    expect(subject).to install_package("nginx")
   end
 
-  it 'creates a directory for the ssl certificates' do
-    expect(chef_run).to create_directory('/etc/nginx/ssl')
-      .with_owner('root')
-      .with_group('root')
-      .with_mode('0644')
+  it "creates a directory for the ssl certificates" do
+    expect(subject).to create_directory("/etc/nginx/ssl")
   end
 
-  it 'copies the ssl certificate' do
-    expect(chef_run).to create_template("/etc/nginx/ssl/#{domain}.crt")
-      .with_mode("0644")
+  it "copies the ssl certificate" do
+    expect(subject).to create_template("/etc/nginx/ssl/#{domain}.crt")
   end
 
-  it 'copies the ssl private key' do
-    expect(chef_run).to create_template("/etc/nginx/ssl/#{domain}.key")
-      .with_mode("0644")
+  it "copies the ssl private key" do
+    expect(subject).to create_template("/etc/nginx/ssl/#{domain}.key")
   end
 
-  it 'copies over the blacklist file' do
-    expect(chef_run).to create_cookbook_file("/etc/nginx/conf.d/blacklist.conf")
-      .with_mode("0644")
+  it "adds the configuration for the website" do
+    expect(subject).to create_template("/etc/nginx/nginx.conf")
   end
 
-  it 'adds the configuration for the website' do
-    expect(chef_run).to create_template("/etc/nginx/sites-available/#{domain}")
-      .with_mode("0644")
+  it "restarts nginx" do
+    resource = subject.template("/etc/nginx/nginx.conf")
+    expect(resource).to notify("service[nginx]").to(:restart).delayed
   end
 
-  it 'restarts nginxj' do
-    resource = chef_run.template("/etc/nginx/sites-available/#{domain}")
-    expect(resource).to notify('service[nginx]').to(:restart).delayed
+  it "starts nginx" do
+    expect(subject).to start_service("nginx")
   end
 
-  it 'starts nginx' do
-    expect(chef_run).to start_service('nginx')
+  it "installs logrotate" do
+    expect(subject).to install_package("logrotate")
   end
 
-  it 'creates a symlink to the sites-enabled directory' do
-    expect(chef_run).to create_link("/etc/nginx/sites-enabled/#{domain}")
+  it "creates the log directory for nginx" do
+    expect(subject).to create_directory("/var/log/nginx")
   end
 
-  it 'deletes the default website' do
-    expect(chef_run).to delete_file("/etc/nginx/sites-enabled/default")
-  end
-
-  it 'installs logrotate' do
-    expect(chef_run).to install_package('logrotate')
-  end
-
-  it 'creates the log directory for nginx' do
-    expect(chef_run).to create_directory('/var/log/nginx').with_mode('0755')
-  end
-
-  it 'adds the logrotate config for rotating nginx logs' do
-    expect(chef_run).to create_template("/etc/logrotate.d/nginx")
+  it "adds the logrotate config for rotating nginx logs" do
+    expect(subject).to create_template("/etc/logrotate.d/nginx")
   end
 end
spec/spec_helper.rb
@@ -1,94 +1,17 @@
-# This file was generated by the `rspec --init` command. Conventionally, all
-# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
-# The generated `.rspec` file contains `--require spec_helper` which will cause
-# this file to always be loaded, without a need to explicitly require it in any
-# files.
-#
-# Given that it is always loaded, you are encouraged to keep this file as
-# light-weight as possible. Requiring heavyweight dependencies from this file
-# will add to the boot time of your test suite on EVERY test run, even for an
-# individual file that may not need all of that loaded. Instead, consider making
-# a separate helper file that requires the additional dependencies and performs
-# the additional setup, and require it from the spec files that actually need
-# it.
-require 'chefspec'
-require 'chefspec/berkshelf'
-require 'ffaker'
+require "chefspec"
+require "chefspec/berkshelf"
+require "ffaker"
 
-# The `.rspec` file also contains a few flags that are not defaults but that
-# users commonly want.
-#
-# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
 RSpec.configure do |config|
-  # rspec-expectations config goes here. You can use an alternate
-  # assertion/expectation library such as wrong or the stdlib/minitest
-  # assertions if you prefer.
   config.expect_with :rspec do |expectations|
-    # This option will default to `true` in RSpec 4. It makes the `description`
-    # and `failure_message` of custom matchers include text for helper methods
-    # defined using `chain`, e.g.:
-    #     be_bigger_than(2).and_smaller_than(4).description
-    #     # => "be bigger than 2 and smaller than 4"
-    # ...rather than:
-    #     # => "be bigger than 2"
     expectations.include_chain_clauses_in_custom_matcher_descriptions = true
   end
-
-  # rspec-mocks config goes here. You can use an alternate test double
-  # library (such as bogus or mocha) by changing the `mock_with` option here.
   config.mock_with :rspec do |mocks|
-    # Prevents you from mocking or stubbing a method that does not exist on
-    # a real object. This is generally recommended, and will default to
-    # `true` in RSpec 4.
     mocks.verify_partial_doubles = true
   end
-
-# The settings below are suggested to provide a good initial experience
-# with RSpec, but feel free to customize to your heart's content.
-=begin
-  # These two settings work together to allow you to limit a spec run
-  # to individual examples or groups you care about by tagging them with
-  # `:focus` metadata. When nothing is tagged with `:focus`, all examples
-  # get run.
   config.filter_run :focus
   config.run_all_when_everything_filtered = true
-
-  # Limits the available syntax to the non-monkey patched syntax that is
-  # recommended. For more details, see:
-  #   - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
-  #   - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
-  #   - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
-  config.disable_monkey_patching!
-
-  # This setting enables warnings. It's recommended, but in some cases may
-  # be too noisy due to issues in dependencies.
-  config.warnings = true
-
-  # Many RSpec users commonly either run the entire suite or an individual
-  # file, and it's useful to allow more verbose output when running an
-  # individual spec file.
-  if config.files_to_run.one?
-    # Use the documentation formatter for detailed output,
-    # unless a formatter has already been configured
-    # (e.g. via a command-line flag).
-    config.default_formatter = 'doc'
-  end
-
-  # Print the 10 slowest examples and example groups at the
-  # end of the spec run, to help surface which specs are running
-  # particularly slow.
-  config.profile_examples = 10
-
-  # Run specs in random order to surface order dependencies. If you find an
-  # order dependency and want to debug it, you can fix the order by providing
-  # the seed, which is printed after each run.
-  #     --seed 1234
+  config.warnings = false
   config.order = :random
-
-  # Seed global randomization in this process using the `--seed` CLI option.
-  # Setting this allows you to use `--seed` to deterministically reproduce
-  # test failures related to randomization by passing the same `--seed` value
-  # as the one that triggered the failure.
   Kernel.srand config.seed
-=end
 end
spec/user_spec.rb
@@ -1,13 +1,13 @@
 describe "stronglifters::user" do
   subject do
     ChefSpec::SoloRunner.new do |node|
-      node.set['user']['username'] = username
+      node.set["stronglifters"]["username"] = username
     end.converge(described_recipe)
   end
 
   let(:username) { FFaker::Internet.user_name }
 
-  it 'creates the rails user' do
+  it "creates the rails user" do
     expect(subject).to create_user(username)
   end
 end