Add write tests for each journal type

This commit is contained in:
Micah Jerome Ellison 2020-09-19 15:29:54 -07:00
parent 607aa7a5a1
commit a6b646bb44
3 changed files with 184 additions and 16 deletions

View file

@ -0,0 +1,12 @@
default_hour: 9
default_minute: 0
editor: 'vim'
template: false
encrypt: false
highlight: true
journals:
default: features/journals/empty_folder
linewrap: 80
tagsymbols: '@'
timeformat: '%Y-%m-%d %H:%M'
indent_character: "|"

View file

@ -0,0 +1,17 @@
colors:
body: green
date: blue
tags: none
title: yellow
default_hour: 9
default_minute: 0
editor: "vim"
encrypt: true
template: false
highlight: true
journals:
default: features/journals/encrypted.journal
linewrap: 80
tagsymbols: '@'
timeformat: '%Y-%m-%d %H:%M'
indent_character: "|"

View file

@ -1,51 +1,136 @@
Feature: Writing new entries. Feature: Writing new entries.
Scenario: Multiline entry with punctuation Scenario Outline: Multiline entry with punctuation
Given we use the config "basic.yaml" Given we use the config <config_file>
When we run "jrnl This is. the title\\n This is the second line" When we run "jrnl This is. the title\\n This is the second line"
And we run "jrnl -n 1" And we run "jrnl -n 1"
Then the output should contain "This is. the title" Then the output should contain "This is. the title"
Scenario: Single line entry with punctuation Examples: configs
Given we use the config "basic.yaml" | config_file |
| "basic.yaml" |
| "empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Multiline entry with 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 <config_file>
When we run "jrnl This is. the title" When we run "jrnl This is. the title"
And we run "jrnl -n 1" And we run "jrnl -n 1"
Then the output should contain "| the title" Then the output should contain "| the title"
Scenario: Writing an entry from command line Examples: configs
Given we use the config "basic.yaml" | config_file |
| "basic.yaml" |
| "empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Single line entry with punctuation in encrypted journal
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 <config_file>
When we run "jrnl 23 july 2013: A cold and stormy day. I ate crisps on the sofa." 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" Then we should see the message "Entry added"
When we run "jrnl -n 1" When we run "jrnl -n 1"
Then the output should contain "2013-07-23 09:00 A cold and stormy day." Then the output should contain "2013-07-23 09:00 A cold and stormy day."
Scenario: Writing an empty entry from the editor Examples: configs
Given we use the config "editor.yaml" | config_file |
| "basic.yaml" |
| "empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Writing an entry from command line in 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 <config_file>
When we open the editor and enter nothing When we open the editor and enter nothing
Then we should see the message "[Nothing saved to file]" Then we should see the message "[Nothing saved to file]"
Examples: configs
| config_file |
| "editor.yaml" |
| "editor_empty_folder.yaml" |
| "dayone.yaml" |
@todo # this might need a new step for editors + encryption
Scenario: Writing an empty entry from the editor in encrypted journal
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 Scenario: Writing an empty entry from the command line
Given we use the config "basic.yaml" Given we use the config "basic.yaml"
When we run "jrnl" and enter nothing When we run "jrnl" and enter nothing
Then the output should be empty Then the output should be empty
And the editor should not have been called And the editor should not have been called
Scenario: Writing an empty entry from the editor @todo # There is a problem with DayOne behave tests and console input
Given we use the config "editor.yaml" 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 <config_file>
When we run "jrnl" and enter nothing When we run "jrnl" and enter nothing
Then the output should be empty Then the output should be empty
And the editor should have been called And the editor should have been called
Scenario: Writing an entry does not print the entire journal Examples: configs
| config_file |
| "editor.yaml" |
| "editor_empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Writing an empty entry from the editor 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
Scenario Outline: Writing an entry does not print the entire journal
# https://github.com/jrnl-org/jrnl/issues/87 # https://github.com/jrnl-org/jrnl/issues/87
Given we use the config "basic.yaml" Given we use the config <config_file>
When we run "jrnl 23 july 2013: A cold and stormy day. I ate crisps on the sofa." 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" Then we should see the message "Entry added"
When we run "jrnl -n 1" When we run "jrnl -n 1"
Then the output should not contain "Life is good" Then the output should not contain "Life is good"
Scenario: Title with an embedded period Examples: configs
Given we use the config "basic.yaml" | config_file |
| "basic.yaml" |
| "empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Writing an entry in encrypted journal does not print the entire 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 not contain "Life is good"
Scenario Outline: Embedded period stays in title
Given we use the config <config_file>
When we run "jrnl 04-24-2014: Created a new website - empty.com. Hope to get a lot of traffic." 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" Then we should see the message "Entry added"
When we run "jrnl -1" When we run "jrnl -1"
@ -55,14 +140,45 @@ Feature: Writing new entries.
| Hope to get a lot of traffic. | Hope to get a lot of traffic.
""" """
Scenario: Emoji support Examples: configs
Given we use the config "basic.yaml" | config_file |
| "basic.yaml" |
| "empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Embedded period stays in title in encrypted journal
Given we use the config "encrypted.yaml"
When we run "jrnl 04-24-2014: Created a new website - empty.com. Hope to get a lot of traffic." and enter "bad doggie no biscuit"
Then we should see the message "Entry added"
When we run "jrnl -1" and enter "bad doggie no biscuit"
Then the output should contain
"""
2014-04-24 09:00 Created a new website - empty.com.
| Hope to get a lot of traffic.
"""
Scenario Outline: Write and read emoji support
Given we use the config <config_file>
When we run "jrnl 23 july 2013: 🌞 sunny day. Saw an 🐘" When we run "jrnl 23 july 2013: 🌞 sunny day. Saw an 🐘"
Then we should see the message "Entry added" Then we should see the message "Entry added"
When we run "jrnl -n 1" When we run "jrnl -n 1"
Then the output should contain "🌞" Then the output should contain "🌞"
And the output should contain "🐘" And the output should contain "🐘"
Examples: configs
| config_file |
| "basic.yaml" |
| "empty_folder.yaml" |
| "dayone.yaml" |
Scenario: Write and read emoji support in encrypted journal
Given we use the config "encrypted.yaml"
When we run "jrnl 23 july 2013: 🌞 sunny day. Saw an 🐘" 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 "🌞"
And the output should contain "🐘"
Scenario: Writing an entry at the prompt (no editor) Scenario: Writing an entry at the prompt (no editor)
Given we use the config "basic.yaml" Given we use the config "basic.yaml"
When we run "jrnl" and enter "25 jul 2013: I saw Elvis. He's alive." When we run "jrnl" and enter "25 jul 2013: I saw Elvis. He's alive."
@ -70,6 +186,29 @@ Feature: Writing new entries.
And the journal should contain "[2013-07-25 09:00] I saw Elvis." And the journal should contain "[2013-07-25 09:00] I saw Elvis."
And the journal should contain "He's alive." 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"
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."
@todo # Need to test DayOne w/out an editor
Scenario: Writing an entry at the prompt (no editor) in DayOne journal
Scenario: Writing an entry at the prompt (no editor) in encrypted journal
Given we use the config "encrypted.yaml"
When we run "jrnl" and enter
"""
bad doggie no biscuit
25 jul 2013: I saw Elvis. He's alive.
"""
Then we should get no error
When we run "jrnl -on '2013-07-25'" and enter "bad doggie no biscuit"
Then the output should contain "2013-07-25 09:00 I saw Elvis."
And the output should contain "| He's alive."
Scenario: Writing into Dayone Scenario: Writing into Dayone
Given we use the config "dayone.yaml" Given we use the config "dayone.yaml"
When we run "jrnl 01 may 1979: Being born hurts." When we run "jrnl 01 may 1979: Being born hurts."