summaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2016-11-29 17:00:29 -0800
committerTim Smith <tsmith@chef.io>2016-11-29 17:00:29 -0800
commit92ba9fd2db53e3adc2894c4f127679c371d74b3b (patch)
treecc027eb2c0b8bb11684c90348568d81c92abfcc0 /spec/unit
parent86ef325580c26cec5fd4afde5796895e77b7cc1b (diff)
downloadohai-92ba9fd2db53e3adc2894c4f127679c371d74b3b.tar.gz
Handle the non-git built haskell stack version shellout formathaskell_fix
splitting fields is fragile. Use a regex instead and add a spec for both formats. Signed-off-by: Tim Smith <tsmith@chef.io>
Diffstat (limited to 'spec/unit')
-rw-r--r--spec/unit/plugins/haskell_spec.rb24
1 files changed, 22 insertions, 2 deletions
diff --git a/spec/unit/plugins/haskell_spec.rb b/spec/unit/plugins/haskell_spec.rb
index 05e632c2..7dc53b69 100644
--- a/spec/unit/plugins/haskell_spec.rb
+++ b/spec/unit/plugins/haskell_spec.rb
@@ -27,7 +27,8 @@ describe Ohai::System, "plugin haskell" do
let(:ghc_out) { "The Glorious Glasgow Haskell Compilation System, version 7.6.3" }
let(:ghci_out) { "The Glorious Glasgow Haskell Compilation System, version 7.6.3" }
let(:cabal_out) { "cabal-install version 1.16.0.2\nusing version 1.16.0 of the Cabal library" }
- let(:stack_out) { "Version 1.1.0, Git revision 0e9430aad55841b5ff2c6c2851f0548c16bce7cf (3540 commits) x86_64 hpack-0.13.0" }
+ let(:stack_out) { "Version 1.2.0 x86_64 hpack-0.14.0" }
+ let(:stack_out_git) { "Version 1.1.0, Git revision 0e9430aad55841b5ff2c6c2851f0548c16bce7cf (3540 commits) x86_64 hpack-0.13.0" }
def setup_plugin
allow(plugin).to receive(:shell_out)
@@ -100,7 +101,7 @@ describe Ohai::System, "plugin haskell" do
end
it "set languages[:haskell][:stack][:version]" do
- expect(plugin[:languages][:haskell][:stack][:version]).to eql("1.1.0")
+ expect(plugin[:languages][:haskell][:stack][:version]).to eql("1.2.0")
end
it "set languages[:haskell][:stack][:description]" do
@@ -108,6 +109,25 @@ describe Ohai::System, "plugin haskell" do
end
end
+ context "if haskell/stack prerelease is installed" do
+
+ before(:each) do
+ setup_plugin
+ allow(plugin).to receive(:shell_out)
+ .with("stack --version")
+ .and_return(mock_shell_out(0, stack_out_git, ""))
+ plugin.run
+ end
+
+ it "set languages[:haskell][:stack][:version]" do
+ expect(plugin[:languages][:haskell][:stack][:version]).to eql("1.1.0")
+ end
+
+ it "set languages[:haskell][:stack][:description]" do
+ expect(plugin[:languages][:haskell][:stack][:description]).to eql(stack_out_git)
+ end
+ end
+
context "if haskell is NOT installed" do
before(:each) do