_list() is way too large and monolithic for many (re-)use cases. As a first step, factor out the building of the filter_command and reuse that for the listproj filtering. Enhance the listproj test with special cases that show the problems with the previous implementation directly using _list: Option -+, custom final filters, and non-ANSI colors cause it to break.
43 lines
849 B
Bash
Executable File
43 lines
849 B
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='list project functionality
|
|
'
|
|
. ./test-lib.sh
|
|
|
|
cat > todo.txt <<EOF
|
|
(B) smell the uppercase Roses +roses @outside +shared
|
|
(C) notice the sunflowers +sunflowers @garden +shared +landscape
|
|
stop
|
|
EOF
|
|
test_todo_session 'basic listproj' <<EOF
|
|
>>> todo.sh listproj
|
|
+landscape
|
|
+roses
|
|
+shared
|
|
+sunflowers
|
|
EOF
|
|
|
|
test_todo_session 'listproj with context' <<EOF
|
|
>>> todo.sh listproj @garden
|
|
+landscape
|
|
+shared
|
|
+sunflowers
|
|
EOF
|
|
|
|
TEST_TODO_CUSTOM=todo-custom.cfg
|
|
cat todo.cfg > "$TEST_TODO_CUSTOM"
|
|
cat >> "$TEST_TODO_CUSTOM" <<'EOF'
|
|
export DEFAULT='</color>'
|
|
export PRI_B='<color type=green>'
|
|
export PRI_C='<color type=blue>'
|
|
export TODOTXT_FINAL_FILTER='grep -i roses'
|
|
EOF
|
|
test_todo_session 'listproj with context special cases' <<EOF
|
|
>>> todo.sh -+ -d "$TEST_TODO_CUSTOM" listproj @garden
|
|
+landscape
|
|
+shared
|
|
+sunflowers
|
|
EOF
|
|
|
|
test_done
|