jrnl/tests/bdd/features/multiple_journals.feature
Jonathan Wren f53110c69b
Rework how all output and messaging works in jrnl (#1475)
* fix missed statement from last PR
* replace print statement for adding an entry to a journal
* clean up linting and format
* change print statement over to new print_msg function
* make print_msg always print to stderr
* change print statement over to new print_msg function
* update importer to use new message function
* update yaml format to use new message function
* code cleanup
* update yaml format to use new message function
* update yaml format to use new exception handling
* update Journal class to use new message function
* update install module to use new message function
* update config module to use new message function
* update upgrade module to properly use new message and exception handling
* fix typo
* update upgrade module to use new message handling
* update welcome message to use new handling
* update upgrade module to use new message handling
* update upgrade module journal summaries to use new message handling
* take out old code
* update upgrade module to use new message handling
* update upgrade module to use new message handling
* update more modules to use new message handling
* take out old comment
* update deprecated_cmd to use new message handling
* update text_exporter with new message handling, get rid of old color constants
* get rid of hardcoded text
* whitespace changes
* rework MsgType into MsgStyle so messages can have different styles
* add comment
* Move around code to separate concerns of each function a bit more
* update create_password and yesno prompt functions for new messaging
* fix missing newline for keyboard interrupts
* fix misc linting
* fix bug with panel titles always showing 'error' after one error
* fix missing import
* update debug output after uncaught exception
* update exception for new exception handling
* rewrite yesno function to use new centralized messages
* reduce the debug output slightly
* clean up print_msgs function
* clean up create_password function
* clean up misc linting
* rename screen_input to hide_input to be more clear
* update encrypted journal prompt to use new messaging functionality
* fix typo in message key
* move rich console into function so we can mock properly
* update password mock to use rich console instead of getpass
* add more helpful output to then step
* fix test by updating expected output
* update message to use new functionality
* rework mocks in test suite for new messaging functionality
* fix linting issue
* fix more tests
* fix more tests
* fix more tests
* fix more tests
* fix merge bug
* update prompt_action_entries to use new messaging functionality
* Add new input_method "type"
  This does the same thing as input_method "pipe" but is more clear what
  it's doing (typing text into the builtin composer)
* get rid of old commented code
* get rid of unused code
* move some files around

Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
2022-06-11 13:32:11 -07:00

96 lines
4 KiB
Gherkin

Feature: Multiple journals
Scenario: Loading a config with two journals
Given we use the config "multiple.yaml"
When we run "jrnl -99 --short"
Then the output should be
2013-06-09 15:39 My first entry.
2013-06-10 15:40 Life is good.
When we run "jrnl work -99 --short"
Then the output should be empty
Scenario: Write to default config by default
Given we use the config "multiple.yaml"
When we run "jrnl this goes to default"
When we run "jrnl -99 --short"
Then the output should contain
2013-06-09 15:39 My first entry.
2013-06-10 15:40 Life is good.
Then the output should contain
this goes to default
When we run "jrnl work -99 --short"
Then the output should be empty
Scenario: Write to specified journal
Given we use the config "multiple.yaml"
When we run "jrnl work a long day in the office"
When we run "jrnl -99 --short"
Then the output should be
2013-06-09 15:39 My first entry.
2013-06-10 15:40 Life is good.
When we run "jrnl work -99 --short"
Then the output should contain "a long day in the office"
Scenario: Tell user which journal was used
Given we use the config "multiple.yaml"
When we run "jrnl work a long day in the office"
Then the output should contain "Entry added to work journal"
Scenario: Write to specified journal with a timestamp
Given we use the config "multiple.yaml"
When we run "jrnl work 23 july 2012: a long day in the office"
When we run "jrnl -99 --short"
Then the output should be
2013-06-09 15:39 My first entry.
2013-06-10 15:40 Life is good.
When we run "jrnl work -99 --short"
Then the output should be
2012-07-23 09:00 a long day in the office
Scenario: Write to specified journal without a timestamp but with colon
Given we use the config "multiple.yaml"
When we run "jrnl work : a long day in the office"
Then the output should be
2013-06-09 15:39 My first entry.
2013-06-10 15:40 Life is good.
When we run "jrnl work -99 --short"
Then the output should be contain
a long day in the office
Scenario: Write to specified journal without a timestamp but with colon
Given we use the config "multiple.yaml"
When we run "jrnl work: a long day in the office"
When we run "jrnl -99 --short"
Then the output should be
2013-06-09 15:39 My first entry.
2013-06-10 15:40 Life is good.
When we run "jrnl work -99 --short"
Then the output should contain
a long day in the office
Scenario: Create new journals as required
Given we use the config "multiple.yaml"
Then journal "ideas" should not exist
When we run "jrnl ideas 23 july 2012: sell my junk on ebay and make lots of money"
When we run "jrnl ideas -99 --short"
Then the output should be
2012-07-23 09:00 sell my junk on ebay and make lots of money
Scenario: Don't crash if no default journal is specified
Given we use the config "bug343.yaml"
When we run "jrnl a long day in the office"
Then the output should contain "No default journal configured"
Scenario: Don't crash if no file exists for a configured encrypted journal
Given we use the config "multiple.yaml"
When we run "jrnl new_encrypted Adding first entry" and enter
these three eyes
these three eyes
n
Then the output should contain "Journal 'new_encrypted' created at"
Scenario: Read and write to journal with emoji name
Given we use the config "multiple.yaml"
When we run "jrnl Adding entry to sparkly journal"
When we run "jrnl -1"
Then the output should contain "Adding entry to sparkly journal"