Don't save templated journal entries if the received raw text is the same as the template itself (#1653)

This commit is contained in:
Briscoooe 2023-02-11 20:38:21 +00:00 committed by Jonathan Wren
parent 3ec0839748
commit a708c15eb7
3 changed files with 21 additions and 1 deletions

View file

@ -160,6 +160,9 @@ def append_mode(args: "Namespace", config: dict, journal: "Journal", **kwargs) -
if not raw or raw.isspace():
logging.error("Append mode: couldn't get raw text or entry was empty")
raise JrnlException(Message(MsgText.NoTextReceived, MsgStyle.NORMAL))
if config["template"] and raw == _get_editor_template(config):
logging.error("Write mode: raw text was the same as the template")
raise JrnlException(Message(MsgText.NoChangesToTemplate, MsgStyle.NORMAL))
logging.debug(
f"Append mode: appending raw text to journal '{args.journal_name}': {raw}"

View file

@ -164,7 +164,9 @@ class MsgText(Enum):
NoTextReceived = """
No entry to save, because no text was received
"""
NoChangesToTemplate = """
No entry to save, because the template was not changed
"""
# --- Upgrade --- #
JournalFailedUpgrade = """
The following journal{s} failed to upgrade:

View file

@ -6,9 +6,12 @@ Feature: Using templates
Scenario Outline: Template contents should be used in new entry
Given we use the config "<config_file>"
And we use the password "test" if prompted
And we append to the editor if opened
This is an addition to a templated entry
When we run "jrnl --config-override template features/templates/basic.template"
And we run "jrnl -1"
Then the output should contain "This text is in the basic template"
Then the output should contain "This is an addition to a templated entry"
Examples: configs
| config_file |
@ -17,3 +20,15 @@ Feature: Using templates
| basic_folder.yaml |
| basic_dayone.yaml |
Scenario Outline: Templated entry should not be saved if template is unchanged
Given we use the config "<config_file>"
And we use the password "test" if prompted
When we run "jrnl --config-override template features/templates/basic.template"
Then the output should contain "No entry to save, because the template was not changed"
Examples: configs
| config_file |
| basic_onefile.yaml |
| basic_encrypted.yaml |
| basic_folder.yaml |
| basic_dayone.yaml |