test/commands/clean_spec.rb in friends-0.35 vs test/commands/clean_spec.rb in friends-0.36
- old
+ new
@@ -1,11 +1,12 @@
# frozen_string_literal: true
require "./test/helper"
clean_describe "clean" do
- subject { run_cmd("clean") }
+ subject { run_cmd("#{quiet} clean") }
+ let(:quiet) { nil }
let(:content) { nil }
it "outputs a message" do
stdout_only "File cleaned: \"#{filename}\""
end
@@ -32,15 +33,101 @@
### Locations:
FILE
end
end
+ describe "when file is missing some headers and sections are out of order" do
+ let(:content) do
+ <<-CONTENT
+### Friends:
+- Marie Curie
+
+### Activities:
+- 2016-01-01: Celebrated the new year with **Marie Curie**.
+ CONTENT
+ end
+
+ it "adds the missing file structure and reorders the sections" do
+ file_equals <<-FILE
+### Activities:
+- 2016-01-01: Celebrated the new year with **Marie Curie**.
+
+### Notes:
+
+### Friends:
+- Marie Curie
+
+### Locations:
+ FILE
+ end
+ end
+
describe "when file has content" do
describe "when content is formatted correctly" do
let(:content) { SCRAMBLED_CONTENT }
it "writes the file with contents sorted" do
file_equals CONTENT
+ end
+
+ describe "when the content includes friends and locations that have not yet been added" do
+ let(:content) do
+ <<-CONTENT
+### Activities:
+- 2017-01-01: Celebrated the new year in _Paris_ with **Marie Curie** and her husband **Pierre Curie**. **Marie Curie** loves _Paris_!
+
+### Notes:
+- 2017-01-01: I just learned that **Jacques Cousteau** is thinking about moving from _Gironde_ to _The Lost City of Atlantis_ (_Gironde_ did seem a bit too terrestrial for him).
+
+### Friends:
+- Grace Hopper [NYC]
+
+### Locations:
+- NYC
+ CONTENT
+ end
+
+ it "adds those friends and locations" do
+ file_equals <<-CONTENT
+### Activities:
+- 2017-01-01: Celebrated the new year in _Paris_ with **Marie Curie** and her husband **Pierre Curie**. **Marie Curie** loves _Paris_!
+
+### Notes:
+- 2017-01-01: I just learned that **Jacques Cousteau** is thinking about moving from _Gironde_ to _The Lost City of Atlantis_ (_Gironde_ did seem a bit too terrestrial for him).
+
+### Friends:
+- Grace Hopper [NYC]
+- Jacques Cousteau
+- Marie Curie
+- Pierre Curie
+
+### Locations:
+- Gironde
+- NYC
+- Paris
+- The Lost City of Atlantis
+ CONTENT
+ end
+
+ it "prints messages for both cleaning and adding friends/locations" do
+ stdout_only <<-OUTPUT
+Friend added: \"Marie Curie\"
+Friend added: \"Pierre Curie\"
+Location added: \"Paris\"
+Friend added: \"Jacques Cousteau\"
+Location added: \"Gironde\"
+Location added: \"The Lost City of Atlantis\"
+File cleaned: \"#{filename}\"
+ OUTPUT
+ end
+
+ describe "when output is quieted" do
+ let(:quiet) { "--quiet" }
+
+ it "prints no messages" do
+ stdout_only ""
+ end
+ end
end
end
describe "when a header is malformed" do
let(:content) do