Before adding any more features to todo_completion, I feel like I need test coverage, so this is a first stab at testing the completion results, via a new test function test_todo_completion. Some basic tests showcase the capabilities. Note: test-lib.sh now uses arrays, therefore all tests must use /bin/bash, not /bin/sh to avoid errors when sourcing test-lib. For consistency with todo.sh, we should have used Bash everywhere, anyway. Also note that t2000-multiline.sh needs some more quoting to avoid "Bash: ambiguous redirect" errors.
104 lines
2.4 KiB
Bash
Executable File
104 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
test_description='basic append functionality
|
|
|
|
Ensure we can append items successfully.
|
|
'
|
|
. ./test-lib.sh
|
|
|
|
#
|
|
# Set up the basic todo.txt
|
|
#
|
|
todo.sh add notice the daisies > /dev/null
|
|
|
|
test_todo_session 'append usage' <<EOF
|
|
>>> todo.sh append adf asdfa
|
|
=== 1
|
|
usage: todo.sh append ITEM# "TEXT TO APPEND"
|
|
EOF
|
|
|
|
test_todo_session 'append error' << EOF
|
|
>>> todo.sh append 10 "hej!"
|
|
=== 1
|
|
TODO: No task 10.
|
|
EOF
|
|
|
|
test_todo_session 'basic append' <<EOF
|
|
>>> todo.sh append 1 "smell the roses"
|
|
1 notice the daisies smell the roses
|
|
|
|
>>> todo.sh list
|
|
1 notice the daisies smell the roses
|
|
--
|
|
TODO: 1 of 1 tasks shown
|
|
EOF
|
|
|
|
test_todo_session 'basic append with &' <<EOF
|
|
>>> todo.sh append 1 "see the wasps & bees"
|
|
1 notice the daisies smell the roses see the wasps & bees
|
|
|
|
>>> todo.sh list
|
|
1 notice the daisies smell the roses see the wasps & bees
|
|
--
|
|
TODO: 1 of 1 tasks shown
|
|
EOF
|
|
|
|
echo 'jump on hay' > todo.txt
|
|
test_todo_session 'append with spaces' <<EOF
|
|
>>> todo.sh append 1 "and notice the three spaces"
|
|
1 jump on hay and notice the three spaces
|
|
EOF
|
|
|
|
cat > todo.txt <<EOF
|
|
smell the cows
|
|
grow some corn
|
|
thrash some hay
|
|
chase the chickens
|
|
EOF
|
|
test_todo_session 'append with symbols' <<EOF
|
|
>>> todo.sh append 1 "~@#$%^&*()-_=+[{]}|;:',<.>/?"
|
|
1 smell the cows ~@#$%^&*()-_=+[{]}|;:',<.>/?
|
|
|
|
>>> todo.sh append 2 '\`!\\"'
|
|
2 grow some corn \`!\\"
|
|
|
|
>>> todo.sh list
|
|
4 chase the chickens
|
|
2 grow some corn \`!\\"
|
|
1 smell the cows ~@#$%^&*()-_=+[{]}|;:',<.>/?
|
|
3 thrash some hay
|
|
--
|
|
TODO: 4 of 4 tasks shown
|
|
EOF
|
|
|
|
cat > todo.txt <<EOF
|
|
notice the daisies
|
|
EOF
|
|
test_todo_session 'append of current sentence' <<EOF
|
|
>>> todo.sh append 1 ", lilies and roses"
|
|
1 notice the daisies, lilies and roses
|
|
|
|
>>> todo.sh append 1 "; see the wasps"
|
|
1 notice the daisies, lilies and roses; see the wasps
|
|
|
|
>>> todo.sh append 1 "& bees"
|
|
1 notice the daisies, lilies and roses; see the wasps & bees
|
|
EOF
|
|
|
|
cp todo.cfg special-delimiters.cfg
|
|
cat >> special-delimiters.cfg <<EOF
|
|
export SENTENCE_DELIMITERS='*,.:;&'
|
|
EOF
|
|
test_todo_session 'append of current sentence SENTENCE_DELIMITERS' <<EOF
|
|
>>> todo.sh -d special-delimiters.cfg append 1 "&beans"
|
|
1 notice the daisies, lilies and roses; see the wasps & bees&beans
|
|
|
|
>>> todo.sh -d special-delimiters.cfg append 1 "%foo"
|
|
1 notice the daisies, lilies and roses; see the wasps & bees&beans %foo
|
|
|
|
>>> todo.sh -d special-delimiters.cfg append 1 "*2"
|
|
1 notice the daisies, lilies and roses; see the wasps & bees&beans %foo*2
|
|
EOF
|
|
|
|
test_done
|