From d694a283c7897d7cfa18692c4e83ada2e76e667d Mon Sep 17 00:00:00 2001 From: Jonathan van der Steege Date: Mon, 23 May 2022 22:48:10 +0200 Subject: [PATCH] Add test for end of path is slash --- tests/bdd/features/file_storage.feature | 8 ++++++++ tests/data/configs/missing_directory.yaml | 1 + tests/lib/then_steps.py | 16 ++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/tests/bdd/features/file_storage.feature b/tests/bdd/features/file_storage.feature index 89069568..b055c23f 100644 --- a/tests/bdd/features/file_storage.feature +++ b/tests/bdd/features/file_storage.feature @@ -30,6 +30,14 @@ Feature: Journals iteracting with the file system in a way that users can see Then the journal should exist When we run "jrnl -99 --short" Then the output should contain "This is a new entry in my journal" + + Scenario: If the directory for a Folder journal ending in a slash ('/' or '\') doesn't exist, then it should be created + Given we use the config "missing_directory.yaml" + Then the journal "endslash" directory should not exist + When we run "jrnl endslash This is a new entry in my journal" + Then the journal "endslash" directory should exist + When we run "jrnl endslash -1" + Then the output should contain "This is a new entry in my journal" Scenario: Creating journal with relative path should update to absolute path Given we use no config diff --git a/tests/data/configs/missing_directory.yaml b/tests/data/configs/missing_directory.yaml index d600404c..ac25ff9b 100644 --- a/tests/data/configs/missing_directory.yaml +++ b/tests/data/configs/missing_directory.yaml @@ -5,6 +5,7 @@ encrypt: false highlight: true journals: default: features/journals/missing_directory/simple.journal + endslash: features/journals/missing_folder/ linewrap: 80 tagsymbols: "@" template: false diff --git a/tests/lib/then_steps.py b/tests/lib/then_steps.py index 4ef1681b..8292382b 100644 --- a/tests/lib/then_steps.py +++ b/tests/lib/then_steps.py @@ -210,6 +210,22 @@ def journal_should_not_exist(config_on_disk, should_or_should_not): ) +@then(parse('the journal "{journal_name}" directory {should_or_should_not} exist')) +def directory_should_not_exist(config_on_disk, should_or_should_not, journal_name): + scoped_config = scope_config(config_on_disk, journal_name) + expected_path = scoped_config["journal"] + + dir_exists = os.path.isdir(expected_path) + if should_or_should_not == "should": + assert dir_exists + elif should_or_should_not == "should not": + assert not dir_exists + else: + raise Exception( + "should_or_should_not valid values are 'should' or 'should not'" + ) + + @then(parse('the content of file "{file_path}" in the cache should be\n{file_content}')) def content_of_file_should_be(file_path, file_content, cache_dir): assert cache_dir["exists"]