diff --git a/bash/README.md b/bash/README.md index de4024d7..07d0d6a7 100644 --- a/bash/README.md +++ b/bash/README.md @@ -1,4 +1,34 @@ -A pure "function", so this works: +# Requirements + +`bash` and friends (`diff`, `grep`, `cat`) + +# (Failing) Unit Test + +```shell +./unit_test.sh +``` + +# Texttest Fixture + +```shell +./texttest_fixture.sh +``` + +Specify days: + +```shell +./texttest_fixture.sh 30 +``` + +Verify againt `ThirtyDays/stdout.gr` + +```shell +./verify.sh +``` + +## BTW + +BTW, the script is a pure "function", so this works: ```shell $ echo -e 'Aged Brie,3,5\nOther Item,4,5' |\ @@ -7,4 +37,4 @@ $ echo -e 'Aged Brie,3,5\nOther Item,4,5' |\ ./gilded_rose.sh Aged Brie,0,8 Other Item,1,2 -``` \ No newline at end of file +``` diff --git a/bash/unit_test.sh b/bash/unit_test.sh new file mode 100755 index 00000000..34cf29d8 --- /dev/null +++ b/bash/unit_test.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +GILDED_ROSE_SCRIPT="./gilded_rose.sh" + +get_name() { + grep -o '^[^|]*' +} + +assert_equals() { + local expected="$1" + diff -u - <(echo "$expected") +} + +test_foo() { + echo "foo|0|0" | + bash "$GILDED_ROSE_SCRIPT" | + get_name | + assert_equals "fixme" +} + +test_foo diff --git a/bash/verify.sh b/bash/verify.sh index 561af69d..ad9d95e5 100755 --- a/bash/verify.sh +++ b/bash/verify.sh @@ -1,3 +1,6 @@ #!/bin/bash -./texttest_fixture.sh 30 | diff -u - ../texttests/ThirtyDays/stdout.gr +./texttest_fixture.sh 30 | + diff -u - ../texttests/ThirtyDays/stdout.gr && + echo "✅ looks good" || + (echo "❌ failed" && exit 1)