From 19a63ccfd84e5d6a7e7f6503323508a85f05f283 Mon Sep 17 00:00:00 2001 From: xonix Date: Mon, 6 Jul 2020 22:03:41 +0300 Subject: [PATCH] Design a unit-test suite for jsqry executable #7 --- .gitignore | 1 + tests.sh | 12 ++++++++++ tests.tush | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100755 tests.sh create mode 100644 tests.tush diff --git a/.gitignore b/.gitignore index 5222fdf..b4d631d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,6 @@ .idea/ target/ build/ +temp/ node_modules/ *.iml diff --git a/tests.sh b/tests.sh new file mode 100755 index 0000000..fa86984 --- /dev/null +++ b/tests.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# Uses https://github.com/adolfopa/tush + +mydir=$(cd "$(dirname $0)" ; pwd) + +export PATH=$mydir/build:$PATH:~/proj_src/tush/bin/ + +#which jsqry +#jsqry -v + +tush-check tests.tush \ No newline at end of file diff --git a/tests.tush b/tests.tush new file mode 100644 index 0000000..b8bf388 --- /dev/null +++ b/tests.tush @@ -0,0 +1,65 @@ + +$ echo '[{"a":1},{"a":2}]' | jsqry 'a' +| [ +| 1, +| 2 +| ] + +$ echo '[{"a":1},{"a":2}]' | jsqry # pretty-print +| [ +| { +| "a": 1 +| }, +| { +| "a": 2 +| } +| ] + +$ echo '[{"a":1},{"a":2}]' | jsqry -1 'a' # first +| 1 + +$ echo '["a", "b", "c", "d", "e"]' | jsqry '[i%2==0]' +| [ +| "a", +| "c", +| "e" +| ] + +$ echo '[{ "k": [{ "a": 1 }, { "a": 2 }] }, { "k": [{ "a": 3 }] }]' | jsqry 'k.*.a' +| [ +| 1, +| 2, +| 3 +| ] + +$ echo '[{ "k": [{ "a": 1 }, { "a": 2 }] }, { "k": [{ "a": 3 }] }]' | jsqry 'k.*.a[::-1]' +| [ +| 3, +| 2, +| 1 +| ] + +$ echo '[{ "k": [{ "a": 1 }, { "a": 2 }] }, { "k": [{ "a": 3 }] }]' | jsqry -1 'k.*.a[::-1][_<3][1]{_+100}' +| 101 + +$ echo 'hello' | jsqry 'a' +@ error: Wrong JSON +? 1 + +$ echo '{}' | jsqry '[' +@ error: Not closed [ +? 1 + +$ echo '{}' | jsqry '}' +@ error: } without { +? 1 + +$ jsqry -v +| 0.0.2 + +$ jsqry -h +| jsqry ver. 0.0.2 +| Usage: echo $JSON | jsqry 'query' +| -1,--first return first result element +| -h,--help print help and exit +| -v,--version print version and exit