tagger

Simple tagging system for any types of files
git clone git://git.konyahin.xyz/tagger
Log | Files | Refs | LICENSE

commit c15d5a0207f11a619087990784689adf19005c34
parent d2d310797e5237bd766461cd7489e35c6008e4cf
Author: Anton Konyahin <me@konyahin.xyz>
Date:   Thu,  8 Jun 2023 21:14:59 +0300

Tests for happy paths

Diffstat:
Mtagger | 8++++----
Atest.sh | 63+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 67 insertions(+), 4 deletions(-)

diff --git a/tagger b/tagger @@ -36,9 +36,9 @@ pexist () { err "$2 should be specified" } -pnodir () { - [ -d "$1" ] && - err "$2 already exist: $1" +pnotagger () { + [ -d "$base" ] && + err "$2 is already contain tagger: $1" } pfile () { @@ -84,7 +84,7 @@ print_help () { ## keeping files and tags ## init_tagger () { - check "$1" "tagger folder" pnodir + check "$1" "folder" pnotagger mkdir -p "$base" } diff --git a/test.sh b/test.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env sh + +# no color +NC='\033[0m' +if [ -z "$NOCOLOR" ]; then + RED='\033[0;31m' + GREEN='\033[0;32m' +else + RED="" + GREEN="" +fi + +test () { + OUTPUT=$(eval "$2") + EXPECT="$3" + if [ "$OUTPUT" = "$EXPECT" ]; then + echo "TEST: $1 ${GREEN}PASSED${NC}" + else + echo "TEST: $1 ${RED}FAILED${NC}" + echo "EXPECTED:" + echo "$EXPECT" + echo "GOT:" + echo "$OUTPUT" + fi +} + +tmp_file () { + FILE=$(mktemp /tmp/tagger-test-file-XXXXXX) + BASENAME=$(basename "$FILE") +} + +FOLDER=$(mktemp -d /tmp/tagger-test-XXXXXX) +LS_FOLDER="&& cd $FOLDER && find ." + +test "init" "./tagger $FOLDER init $LS_FOLDER" \ +". +./.base" + +tmp_file +test "add one file" "./tagger $FOLDER add $FILE $LS_FOLDER" \ +". +./.base +./.base/$BASENAME" +rm -f "$FILE" + +test "tag file" "./tagger $FOLDER tag $BASENAME a $LS_FOLDER" \ +". +./.base +./.base/$BASENAME +./a +./a/$BASENAME" + +test "untag file" "./tagger $FOLDER untag $BASENAME a $LS_FOLDER" \ +". +./.base +./.base/$BASENAME +./a" + +test "ls files" "./tagger $FOLDER ls" "$BASENAME" + +test "path file" "./tagger $FOLDER path $BASENAME" "$FOLDER/.base/$BASENAME" + +rm -rf "$FOLDER"