-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.sh
More file actions
executable file
·45 lines (37 loc) · 1.04 KB
/
test.sh
File metadata and controls
executable file
·45 lines (37 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env bash
set -uo pipefail
cd "$(dirname "$0")"
fail=0
check() {
local name="$1" expected="$2" actual="$3"
if [[ "$expected" == "$actual" ]]; then
printf 'ok %s\n' "$name"
else
printf 'FAIL %s\n' "$name"
diff <(printf '%s\n' "$expected") <(printf '%s\n' "$actual") || true
fail=1
fi
}
check "file mode" \
'["name","sex","age"]
["morris","m","12"]
["jenna","f","13"]
["yarris","c","200"]' \
"$(./index.js samples/people.csv)"
check "--headers" \
'{"name":"morris","sex":"m","age":"12"}
{"name":"jenna","sex":"f","age":"13"}
{"name":"yarris","sex":"c","age":"200"}' \
"$(./index.js --headers samples/people.csv)"
check "--format" \
' 12 m morris
13 f jenna
200 c yarris' \
"$(./index.js --headers --format '%(age)4d %(sex)s %(name)s' samples/people.csv)"
check "stdin" \
'{"name":"morris","sex":"m","age":"12"}
{"name":"jenna","sex":"f","age":"13"}
{"name":"yarris","sex":"c","age":"200"}' \
"$(./index.js --headers < samples/people.csv)"
check "empty file" "" "$(./index.js samples/empty.csv)"
exit $fail