aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/test/cask/cli/cat_test.rb
blob: df49efda0754982fe0d98de468607e85330b04a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
require "test_helper"

describe Hbc::CLI::Cat do
  describe "given a basic Cask" do
    before do
      @expected_output = <<-EOS.undent
        test_cask 'basic-cask' do
          version '1.2.3'
          sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'

          url 'http://example.com/TestCask.dmg'
          homepage 'http://example.com/'

          app 'TestCask.app'
        end
      EOS
    end

    it "displays the Cask file content about the specified Cask" do
      lambda {
        Hbc::CLI::Cat.run("basic-cask")
      }.must_output(@expected_output)
    end

    it "throws away additional Cask arguments and uses the first" do
      lambda {
        Hbc::CLI::Cat.run("basic-cask", "local-caffeine")
      }.must_output(@expected_output)
    end

    it "throws away stray options" do
      lambda {
        Hbc::CLI::Cat.run("--notavalidoption", "basic-cask")
      }.must_output(@expected_output)
    end
  end

  it "raises an exception when the Cask does not exist" do
    lambda {
      Hbc::CLI::Cat.run("notacask")
    }.must_raise Hbc::CaskUnavailableError
  end

  describe "when no Cask is specified" do
    it "raises an exception" do
      lambda {
        Hbc::CLI::Cat.run
      }.must_raise Hbc::CaskUnspecifiedError
    end
  end

  describe "when no Cask is specified, but an invalid option" do
    it "raises an exception" do
      lambda {
        Hbc::CLI::Cat.run("--notavalidoption")
      }.must_raise Hbc::CaskUnspecifiedError
    end
  end
end