diff --git a/features/star.feature b/features/star.feature index 62d1007d..01aa3929 100644 --- a/features/star.feature +++ b/features/star.feature @@ -1,20 +1,20 @@ Feature: Starring entries Scenario Outline: Starring an entry will mark it in the journal file - Given we use the config + Given we use the config ".yaml" When we run "jrnl 20 july 2013 *: Best day of my life!" Then we should see the message "Entry added" When we run "jrnl -on 2013-07-20 -starred" Then the output should contain "2013-07-20 09:00 Best day of my life!" Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone | - Scenario Outline: Filtering by starred entries - Given we use the config + Scenario Outline: Filtering by starred entries will show only starred entries + Given we use the config ".yaml" When we run "jrnl -starred" Then the output should be empty When we run "jrnl 20 july 2013 *: Best day of my life!" @@ -22,10 +22,10 @@ Feature: Starring entries Then the output should be "2013-07-20 09:00 Best day of my life!" Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone_empty.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone_empty | Scenario: Starring an entry will mark it in an encrypted journal Given we use the config "encrypted.yaml" diff --git a/features/steps/core.py b/features/steps/core.py index 52ada25c..d97965d5 100644 --- a/features/steps/core.py +++ b/features/steps/core.py @@ -433,6 +433,7 @@ def check_output_not_inline(context, text): @then('we should see the message "{text}"') +@then('the error output should be "{text}"') def check_message(context, text): out = context.stderr_capture.getvalue() assert text in out, [text, out] diff --git a/features/write.feature b/features/write.feature index 59716efc..494d6697 100644 --- a/features/write.feature +++ b/features/write.feature @@ -1,116 +1,119 @@ Feature: Writing new entries. - Scenario Outline: Multiline entry with punctuation - Given we use the config + Scenario Outline: Multiline entry with punctuation should keep title punctuation + Given we use the config ".yaml" When we run "jrnl This is. the title\\n This is the second line" And we run "jrnl -n 1" Then the output should contain "This is. the title" Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone | - Scenario: Multiline entry with punctuation in encrypted journal + Scenario: Multiline entry with punctuation should keep title punctuation in encrypted journal Given we use the config "encrypted.yaml" When we run "jrnl This is. the title\\n This is the second line" and enter "bad doggie no biscuit" And we run "jrnl -n 1" and enter "bad doggie no biscuit" Then the output should contain "This is. the title" - Scenario Outline: Single line entry with punctuation - Given we use the config + Scenario Outline: Single line entry with period should be split at period + Given we use the config ".yaml" When we run "jrnl This is. the title" And we run "jrnl -n 1" Then the output should contain "| the title" Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone | - Scenario: Single line entry with punctuation in encrypted journal + Scenario: Single line entry with period should be split at period Given we use the config "encrypted.yaml" When we run "jrnl This is. the title" and enter "bad doggie no biscuit" And we run "jrnl -n 1" and enter "bad doggie no biscuit" Then the output should contain "| the title" - Scenario Outline: Writing an entry from command line - Given we use the config + Scenario Outline: Writing an entry from command line should store the entry + Given we use the config ".yaml" When we run "jrnl 23 july 2013: A cold and stormy day. I ate crisps on the sofa." Then we should see the message "Entry added" When we run "jrnl -n 1" Then the output should contain "2013-07-23 09:00 A cold and stormy day." Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone | - Scenario: Writing an entry from command line in encrypted journal + Scenario: Writing an entry from command line should store the entry (encrypted journal) Given we use the config "encrypted.yaml" When we run "jrnl 23 july 2013: A cold and stormy day. I ate crisps on the sofa." and enter "bad doggie no biscuit" Then we should see the message "Entry added" When we run "jrnl -n 1" and enter "bad doggie no biscuit" Then the output should contain "2013-07-23 09:00 A cold and stormy day." - Scenario Outline: Writing an empty entry from the editor - Given we use the config + Scenario Outline: Writing an empty entry from the editor should yield "Nothing saved to file" message + Given we use the config ".yaml" When we open the editor and enter nothing - Then we should see the message "[Nothing saved to file]" + Then the error output should contain "[Nothing saved to file]" Examples: configs - | config_file | - | "editor.yaml" | - | "editor_empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | editor | + | editor_empty_folder | + | dayone | @todo # this might need a new step for editors + encryption - Scenario: Writing an empty entry from the editor in encrypted journal + Scenario: Writing an empty entry from the editor in encrypted journal should yield "Nothing saved to file" message Given we use the config "editor_encrypted.yaml" #When we open the editor and enter nothing #Then we should see the message "[Nothing saved to file]" - Scenario: Writing an empty entry from the command line - Given we use the config "basic.yaml" + Scenario Outline: Writing an empty entry from the command line with no editor should yield nothing + Given we use the config ".yaml" When we run "jrnl" and enter nothing Then the output should be empty + And the error output should contain "Writing Entry; on a blank line" And the editor should not have been called + Examples: configs + | config_file | + | basic | + | empty_folder | + @todo # There is a problem with DayOne behave tests and console input Scenario: Writing an empty entry from the command line in DayOne journal - Scenario: Writing an empty entry from the command line in folder journal - Given we use the config "empty_folder.yaml" - When we run "jrnl" and enter nothing - Then the output should be empty - And the editor should not have been called - @todo # Need some steps for encryption + editor Scenario: Writing an empty entry from the command line in encrypted journal - Scenario Outline: Writing an empty entry from the editor - Given we use the config + Scenario Outline: Writing an empty entry from the editor should yield nothing + Given we use the config ".yaml" When we run "jrnl" and enter nothing Then the output should be empty + And the error output should contain "[Nothing saved to file]" And the editor should have been called Examples: configs - | config_file | - | "editor.yaml" | - | "editor_empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | editor | + | editor_empty_folder | + | dayone | - Scenario: Writing an empty entry from the editor in encrypted journal + Scenario: Writing an empty entry from the editor should yield nothing in encrypted journal Given we use the config "editor_encrypted.yaml" When we run "jrnl" and enter "bad doggie no biscuit" - Then the editor should have been called + Then the output should be "Password:" + And the error output should contain "[Nothing saved to file]" + And the editor should have been called Scenario Outline: Writing an entry does not print the entire journal # https://github.com/jrnl-org/jrnl/issues/87 - Given we use the config + Given we use the config ".yaml" When we run "jrnl 23 july 2013: A cold and stormy day. I ate crisps on the sofa." Then we should see the message "Entry added" When we run "jrnl -n 1" @@ -118,9 +121,9 @@ Feature: Writing new entries. Examples: configs | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | editor | + | editor_empty_folder | + | dayone | Scenario: Writing an entry in encrypted journal does not print the entire journal Given we use the config "encrypted.yaml" @@ -130,7 +133,7 @@ Feature: Writing new entries. Then the output should not contain "Life is good" Scenario Outline: Embedded period stays in title - Given we use the config + Given we use the config ".yaml" When we run "jrnl 04-24-2014: Created a new website - empty.com. Hope to get a lot of traffic." Then we should see the message "Entry added" When we run "jrnl -1" @@ -141,10 +144,10 @@ Feature: Writing new entries. """ Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone | Scenario: Embedded period stays in title in encrypted journal Given we use the config "encrypted.yaml" @@ -158,7 +161,7 @@ Feature: Writing new entries. """ Scenario Outline: Write and read emoji support - Given we use the config + Given we use the config ".yaml" When we run "jrnl 23 july 2013: 🌞 sunny day. Saw an 🐘" Then we should see the message "Entry added" When we run "jrnl -n 1" @@ -166,10 +169,10 @@ Feature: Writing new entries. And the output should contain "🐘" Examples: configs - | config_file | - | "basic.yaml" | - | "empty_folder.yaml" | - | "dayone.yaml" | + | config_file | + | basic | + | empty_folder | + | dayone | Scenario: Write and read emoji support in encrypted journal Given we use the config "encrypted.yaml" @@ -179,21 +182,19 @@ Feature: Writing new entries. Then the output should contain "🌞" And the output should contain "🐘" - Scenario: Writing an entry at the prompt (no editor) - Given we use the config "basic.yaml" - When we run "jrnl" and enter "25 jul 2013: I saw Elvis. He's alive." - Then we should get no error - And the journal should contain "[2013-07-25 09:00] I saw Elvis." - And the journal should contain "He's alive." - - Scenario: Writing an entry at the prompt (no editor) in folder journal - Given we use the config "empty_folder.yaml" + Scenario Outline: Writing an entry at the prompt (no editor) should store the entry + Given we use the config ".yaml" When we run "jrnl" and enter "25 jul 2013: I saw Elvis. He's alive." Then we should get no error When we run "jrnl -on '2013-07-25'" Then the output should contain "2013-07-25 09:00 I saw Elvis." And the output should contain "| He's alive." + Examples: configs + | config_file | + | basic | + | empty_folder | + @todo # Need to test DayOne w/out an editor Scenario: Writing an entry at the prompt (no editor) in DayOne journal