forked from Homebrew/brew
-
Notifications
You must be signed in to change notification settings - Fork 0
/
messages_spec.rb
105 lines (89 loc) 路 3.01 KB
/
messages_spec.rb
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# typed: false
# frozen_string_literal: true
require "messages"
require "spec_helper"
describe Messages do
let(:messages) { described_class.new }
let(:test_formula) { formula("foo") { url("https://brew.sh/foo-0.1.tgz") } }
let(:elapsed_time) { 1.1 }
describe "#record_caveats" do
it "adds a caveat" do
expect {
messages.record_caveats(test_formula, "Zsh completions were installed")
}.to change { messages.caveats.count }.by(1)
end
end
describe "#package_installed" do
it "increases the package count" do
expect {
messages.package_installed(test_formula, elapsed_time)
}.to change(messages, :package_count).by(1)
end
it "adds to install_times" do
expect {
messages.package_installed(test_formula, elapsed_time)
}.to change { messages.install_times.count }.by(1)
end
end
describe "#display_messages" do
context "when package_count is less than two" do
before do
messages.record_caveats(test_formula, "Zsh completions were installed")
messages.package_installed(test_formula, elapsed_time)
end
it "doesn't print caveat details" do
expect { messages.display_messages }.not_to output.to_stdout
end
end
context "when caveats is empty" do
before do
messages.package_installed(test_formula, elapsed_time)
end
it "doesn't print caveat details" do
expect { messages.display_messages }.not_to output.to_stdout
end
end
context "when package_count is greater than one and caveats are present" do
let(:test_formula2) { formula("bar") { url("https://brew.sh/bar-0.1.tgz") } }
before do
messages.record_caveats(test_formula, "Zsh completions were installed")
messages.package_installed(test_formula, elapsed_time)
messages.package_installed(test_formula2, elapsed_time)
end
it "prints caveat details" do
expect { messages.display_messages }.to output(
<<~EOS,
==> Caveats
==> foo
Zsh completions were installed
EOS
).to_stdout
end
end
context "when the `display_times` argument is true" do
context "when `install_times` is empty" do
it "doesn't print anything" do
expect { messages.display_messages(display_times: true) }.not_to output.to_stdout
end
end
context "when `install_times` is present" do
before do
messages.package_installed(test_formula, elapsed_time)
end
it "prints installation times" do
expect { messages.display_messages(display_times: true) }.to output(
<<~EOS,
==> Installation times
foo 1.100 s
EOS
).to_stdout
end
end
end
context "when the `display_times` argument isn't specified" do
it "doesn't print installation times" do
expect { messages.display_messages }.not_to output.to_stdout
end
end
end
end