test/commands/stats_spec.rb in friends-0.34 vs test/commands/stats_spec.rb in friends-0.35
- old
+ new
@@ -7,37 +7,130 @@
describe "when file does not exist" do
let(:content) { nil }
it "returns the stats" do
- stdout_only <<-FILE
+ stdout_only <<-OUTPUT
Total activities: 0
Total friends: 0
+Total locations: 0
+Total notes: 0
+Total tags: 0
Total time elapsed: 0 days
- FILE
+ OUTPUT
end
end
describe "when the file is empty" do
let(:content) { "" }
it "returns the stats" do
- stdout_only <<-FILE
+ stdout_only <<-OUTPUT
Total activities: 0
Total friends: 0
+Total locations: 0
+Total notes: 0
+Total tags: 0
Total time elapsed: 0 days
- FILE
+ OUTPUT
end
end
describe "when file has stats" do
let(:content) { CONTENT }
it "returns the content" do
- stdout_only <<-FILE
+ stdout_only <<-OUTPUT
Total activities: 4
Total friends: 3
-Total time elapsed: 351 days
- FILE
+Total locations: 3
+Total notes: 4
+Total tags: 5
+Total time elapsed: 848 days
+ OUTPUT
+ end
+
+ describe "when the file has a single note and no activities" do
+ let(:content) do
+ <<-FILE
+### Notes:
+- 2015-11-01: **Grace Hopper** just started a PhD program. @school @science
+ FILE
+ end
+
+ it "counts elapsed days as 0" do
+ stdout_only <<-OUTPUT
+Total activities: 0
+Total friends: 0
+Total locations: 0
+Total notes: 1
+Total tags: 2
+Total time elapsed: 0 days
+ OUTPUT
+ end
+ end
+
+ describe "when the file has a single activity and no notes" do
+ let(:content) do
+ <<-FILE
+### Activities:
+- 2015-11-01: **Grace Hopper** and I got lunch today.
+ FILE
+ end
+
+ it "counts elapsed days as 0" do
+ stdout_only <<-OUTPUT
+Total activities: 1
+Total friends: 0
+Total locations: 0
+Total notes: 0
+Total tags: 0
+Total time elapsed: 0 days
+ OUTPUT
+ end
+ end
+
+ describe "when the file has one activity and one note" do
+ let(:content) do
+ <<-FILE
+### Activities:
+- #{activity_date}: **Grace Hopper** and I got lunch today.
+
+### Notes:
+- #{note_date}: **Grace Hopper** just started a PhD program. @school @science
+ FILE
+ end
+
+ describe "when the note and activity are on the same day" do
+ let(:activity_date) { "2015-11-01" }
+ let(:note_date) { activity_date }
+
+ it "counts elapsed days as 0" do
+ stdout_only <<-OUTPUT
+Total activities: 1
+Total friends: 0
+Total locations: 0
+Total notes: 1
+Total tags: 2
+Total time elapsed: 0 days
+ OUTPUT
+ end
+ end
+
+ describe "when the note and activity are one day apart" do
+ let(:activity_date) { "2015-11-01" }
+ let(:note_date) { "2015-11-02" }
+
+ it "uses the singular for one elapsed day" do
+ stdout_only <<-OUTPUT
+Total activities: 1
+Total friends: 0
+Total locations: 0
+Total notes: 1
+Total tags: 2
+Total time elapsed: 1 day
+ OUTPUT
+ end
+ end
end
end
end