mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
* behavior outline
* FIrst pass at allow external plugins
* remove template exporter
* Add listing of active plugins to '--version' output
* Documentation for plugins
* [Docs] add custom imports and exporters to site TOC
* [Docs] better linewrapping
* enforce positive initial linewrap
Check column widths
update gitignore
throw error when linewrap too small
simply check for large enough linewrap value
* delete unused error message
* PR feedback
make exception more informative
update check_linewrap signature in src and test
make check_linewrap a free function
* delete unused function
* delete else..pass block
* newline for make format
* Include dates_exporter
* Use Base classes for importer and exporters.
* [Docs] improve documentation of custom Importers and Exporters
* [Testing] separate run with external plugin!
* basic behavior test
* prototype unittest for JSON Exporter
test for unimplemented method
* make format
delete unused imports
* Remove 'importer' or 'exporter' from filenames where not needed
* [Test] run different tests with or without the external plugins installed
* [Test] move test rot13 plugin into git tree
from 0dc912af82
* consolidate demo plugins to common package
* [Docs] name page for plugins
* [Docs] include the sample plug in code files directly
* style fixes
* [test] determine whether to run external plug in tests based on installed packages
* improved code documentation
* style fixes for GitHub actions
* Convert "short" and "pretty" (and "default") formaters to plugins
further to https://github.com/jrnl-org/jrnl/pull/1177
* more code clean up
tests pass locally...now for GitHub...
* [tests] dynamically determine jrnl version for plugin tests
* [GitHub Actions] direct install of testing plugins
* Remove template code
* [plugins] meta --> collector
* [Docs] create scripted entries using an custom importer
* (closer to) being able to run behave tests outside project root directory
* We already know when exporter to use
Don't re-calculate it!
* [Tests] don't name test plugin 'testing"
If so named, pip won't install it.
* [Test] run behave tests with test plugins outside project root
* [Test] behave tests pass locally
* [Docs] fix typo
* [GitHub Actions] run test commands from poetry's shell
* black-ify code
* [GitHub Actions] move downstream (rather than up) to run tests
* [GitHub Actions] set shell to poetry
* [GitHub Workflows] Manually activate virtual environment
* [GitHub Actions] Skip Windows & Python 3.8
Can't seem to find Python exe?
* [GiotHub Actions] explicitly use virtual env
* [GitHub Actions] create virutal env directly
* [GitHub Actions] better activate of Windows virtual env
* [GitHub Actions] create virtual env on Mac
* [Github Actions] install wheel and upgrade pip
* [GitHub Actions] skip virtual environments altogether
* [GitHub Actions] change directory for behave test
* Remove Windows exclusions from CI as per note -- they should be working now
Co-authored-by: Suhas <sugas182@gmail.com>
Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
218 lines
8.4 KiB
Gherkin
218 lines
8.4 KiB
Gherkin
Feature: Writing new entries.
|
|
|
|
Scenario Outline: Multiline entry with punctuation should keep title punctuation
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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 |
|
|
| simple |
|
|
| empty_folder |
|
|
| dayone |
|
|
| encrypted |
|
|
|
|
Scenario Outline: Single line entry with period should be split at period
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl This is. the title"
|
|
And we run "jrnl -1"
|
|
Then the output should contain "| the title"
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| basic_onefile |
|
|
| basic_encrypted |
|
|
| basic_folder |
|
|
| basic_dayone |
|
|
|
|
Scenario Outline: CJK entry should be split at fullwidth period without following space.
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl 七転び。八起き"
|
|
And we run "jrnl -1"
|
|
Then the output should contain "| 八起き"
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| basic_onefile |
|
|
| basic_encrypted |
|
|
| basic_folder |
|
|
| basic_dayone |
|
|
|
|
Scenario Outline: Writing an entry from command line should store the entry
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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 |
|
|
| simple |
|
|
| empty_folder |
|
|
| dayone |
|
|
| encrypted |
|
|
|
|
Scenario Outline: Writing a partial entry from command line with edit flag should go to the editor
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "test" if prompted
|
|
When we run "jrnl this is a partial --edit"
|
|
Then we should see the message "Entry added"
|
|
Then the editor should have been called
|
|
And the editor file content should be
|
|
"""
|
|
this is a partial
|
|
"""
|
|
When we run "jrnl -n 1"
|
|
Then the output should contain "this is a partial"
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| basic_onefile |
|
|
| basic_encrypted |
|
|
| basic_dayone |
|
|
| basic_folder |
|
|
|
|
Scenario Outline: Writing an empty entry from the editor should yield "Nothing saved to file" message
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "test" if prompted
|
|
When we open the editor and enter nothing
|
|
Then the error output should contain "[Nothing saved to file]"
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| editor |
|
|
| editor_empty_folder |
|
|
| dayone |
|
|
| basic_encrypted |
|
|
| basic_onefile |
|
|
|
|
@skip
|
|
Scenario Outline: Writing an empty entry from the command line with no editor should yield nothing
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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 |
|
|
| simple |
|
|
| empty_folder |
|
|
| encrypted |
|
|
# | dayone | @todo
|
|
|
|
Scenario Outline: Writing an entry does not print the entire journal
|
|
# https://github.com/jrnl-org/jrnl/issues/87
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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 not contain "Life is good"
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| editor |
|
|
| editor_empty_folder |
|
|
| dayone |
|
|
| encrypted |
|
|
|
|
Scenario Outline: Embedded period stays in title
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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"
|
|
Then the output should be
|
|
"""
|
|
2014-04-24 09:00 Created a new website - empty.com.
|
|
| Hope to get a lot of traffic.
|
|
"""
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| simple |
|
|
| empty_folder |
|
|
| dayone |
|
|
| encrypted |
|
|
|
|
Scenario Outline: Write and read emoji support
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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"
|
|
Then the output should contain "🌞"
|
|
And the output should contain "🐘"
|
|
|
|
Examples: configs
|
|
| config_file |
|
|
| simple |
|
|
| empty_folder |
|
|
| dayone |
|
|
| encrypted |
|
|
|
|
Scenario Outline: Writing an entry at the prompt (no editor) should store the entry
|
|
Given we use the config "<config_file>.yaml"
|
|
And we use the password "bad doggie no biscuit" if prompted
|
|
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 |
|
|
| simple |
|
|
| empty_folder |
|
|
| encrypted |
|
|
|
|
@todo
|
|
Scenario: Writing an entry at the prompt (no editor) in DayOne journal
|
|
# Need to test DayOne w/out an editor
|
|
|
|
Scenario: Writing into Dayone
|
|
Given we use the config "dayone.yaml"
|
|
When we run "jrnl 01 may 1979: Being born hurts."
|
|
And we run "jrnl -until 1980"
|
|
Then the output should be "1979-05-01 09:00 Being born hurts."
|
|
|
|
# the testing plugins override the JSON exporter
|
|
@skip_no_external_plugins
|
|
Scenario: Writing into Dayone adds extended metadata
|
|
Given we use the config "dayone.yaml"
|
|
When we run "jrnl 01 may 1979: Being born hurts."
|
|
And we run "jrnl --export json"
|
|
Then "entries" in the json output should have 5 elements
|
|
And the json output should contain entries.0.creator.software_agent
|
|
And the json output should contain entries.0.creator.os_agent
|
|
And the json output should contain entries.0.creator.host_name
|
|
And the json output should contain entries.0.creator.generation_date
|
|
And the json output should contain entries.0.creator.device_agent
|
|
And "entries.0.creator.software_agent" in the json output should contain "jrnl"
|
|
|
|
# fails when system time is UTC (as on Travis-CI)
|
|
@skip
|
|
Scenario: Title with an embedded period on DayOne journal
|
|
Given we use the config "dayone.yaml"
|
|
When we run "jrnl 04-24-2014: "Ran 6.2 miles today in 1:02:03. I'm feeling sore because I forgot to stretch.""
|
|
Then we should see the message "Entry added"
|
|
When we run "jrnl -1"
|
|
Then the output should be
|
|
"""
|
|
2014-04-24 09:00 Ran 6.2 miles today in 1:02:03.
|
|
| I'm feeling sore because I forgot to stretch.
|
|
"""
|
|
|
|
Scenario: Opening an folder that's not a DayOne folder should treat as folder journal
|
|
Given we use the config "empty_folder.yaml"
|
|
When we run "jrnl 23 july 2013: Testing folder journal."
|
|
Then we should see the message "Entry added"
|
|
When we run "jrnl -1"
|
|
Then the output should be "2013-07-23 09:00 Testing folder journal."
|