mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-11 00:58:31 +02:00
* Remove search mode conditional that added explicit tag search behavior * Fix failing change-time test by using same method signature as base journal class * Fix user input mock - was not appropriately checking return value * Clean up controller - streamline `run` function in `controller.py` - add debug logging - fix unnecessary import of Journal class (only needed for typing) - standardize summary display across different actions * Add currently-failing test conditions for count messages when changing time and deleting * Don't show summary if no entries found and prevent extra line break when no entries found by short-circuiting display method * Track found entry count and remove incorrect modified stat logic * Track journal entry deletion consistently * Remove unneeded exception when editor is empty and fix test that was testing incorrect message * Correct entry edit modified count test * Track modification of entries with --change-time * Preserve existing behavior when editor is empty but make the message more clear * Reconcile tests with new error message when clearing editor in edit mode * Add found/modified counts to edit tests * Add tests for found count with -n equivalent argument * Test combinations of found/deleted messages when using --delete * Add tests for counting combinations of action arguments (change-time, edit, delete) and for change-time counts. Some are failing and should be investigated * Remove extraneous comment in test * Track added/deleted counts in a register in the Journal class instead of attempting to infer it via controller counting * Add encrypted to more tests * Fix merge conflict typo * Change 'write mode' -> 'append mode' in more places --------- Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
273 lines
11 KiB
Gherkin
273 lines
11 KiB
Gherkin
# Copyright © 2012-2023 jrnl contributors
|
|
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
Feature: Change entry times in journal
|
|
Scenario Outline: Change time flag changes single entry timestamp
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl -1"
|
|
Then the output should contain "2020-09-24 09:14 The third entry finally"
|
|
When we run "jrnl -1 --change-time '2022-04-23 10:30'" and enter
|
|
Y
|
|
Then the error output should contain "1 entry modified"
|
|
And the error output should not contain "deleted"
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2022-04-23 10:30 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_encrypted.yaml |
|
|
| basic_folder.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
Scenario Outline: Change flag changes prompted entries
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
When we run "jrnl --change-time '2022-04-23 10:30'" and enter
|
|
Y
|
|
N
|
|
Y
|
|
Then the error output should contain "3 entries found"
|
|
And the error output should contain "2 entries modified"
|
|
When we run "jrnl --short"
|
|
Then the output should be
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2022-04-23 10:30 Entry the first.
|
|
2022-04-23 10:30 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_encrypted.yaml |
|
|
| basic_folder.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Answering "N" to change-time prompt deletes no entries
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl -1"
|
|
Then the output should contain "2020-09-24 09:14 The third entry finally"
|
|
When we run "jrnl -1 --change-time '2023-02-21 10:30'" and enter
|
|
N
|
|
Then the error output should not contain "modified"
|
|
And the error output should not contain "deleted"
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_encrypted.yaml |
|
|
| basic_folder.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
Scenario Outline: Change time flag with nonsense input changes nothing
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time now asdfasdf"
|
|
Then the output should contain "No entries to modify"
|
|
And the error output should not contain "entries modified"
|
|
And the error output should not contain "entries deleted"
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
| basic_dayone.yaml |
|
|
|
|
|
|
Scenario Outline: Change time flag with tag only changes tagged entries
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum" and enter
|
|
Y
|
|
Then the error output should contain "1 entry found"
|
|
And the error output should contain "1 entry modified"
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
2022-04-23 10:30 Entry the first.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with multiple tags changes all entries matching any of the tags
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' @ipsum @tagthree" and enter
|
|
Y
|
|
Y
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2022-04-23 10:30 Entry the first.
|
|
2022-04-23 10:30 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with -and changes boolean AND of tagged entries
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' -and @tagone @tagtwo" and enter
|
|
Y
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
2022-04-23 10:30 Entry the first.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with -not does not change entries from given tag
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' @tagone -not @ipsum" and enter
|
|
Y
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2022-04-23 10:30 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with -from search operator only changes entries since that date
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' -from 2020-09-01" and enter
|
|
Y
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2022-04-23 10:30 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with -to only changes entries up to specified date
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' -to 2020-08-31" and enter
|
|
Y
|
|
Y
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
2022-04-23 10:30 Entry the first.
|
|
2022-04-23 10:30 A second entry in what I hope to be a long series.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with -starred only changes starred entries
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' -starred" and enter
|
|
Y
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
2022-04-23 10:30 A second entry in what I hope to be a long series.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with -contains only changes entries containing expression
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time '2022-04-23 10:30' -contains dignissim" and enter
|
|
Y
|
|
Then the error output should contain "1 entry modified"
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
2022-04-23 10:30 Entry the first.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
# | basic_dayone.yaml | @todo
|
|
|
|
|
|
Scenario Outline: Change time flag with no entries specified changes nothing
|
|
Given we use the config "<config_file>"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl --change-time" and enter
|
|
N
|
|
N
|
|
N
|
|
When we run "jrnl -99 --short"
|
|
Then the output should be
|
|
2020-08-29 11:11 Entry the first.
|
|
2020-08-31 14:32 A second entry in what I hope to be a long series.
|
|
2020-09-24 09:14 The third entry finally after weeks without writing.
|
|
|
|
Examples: Configs
|
|
| config_file |
|
|
| basic_onefile.yaml |
|
|
| basic_folder.yaml |
|
|
| basic_encrypted.yaml |
|
|
| basic_dayone.yaml |
|