Software /
code /
prosody
Annotate
spec/util_human_io_spec.lua @ 13114:025c38ee885d
util.dependencies: Print tables itself to reduce number of imports
Rationale: See diffstat
When this module is imported, it ends up calling stty via term_width()
in util.human.io.table(). When this happens outside of a terminal, the
following message is sent to stdout:
stty: 'standard input': Inappropriate ioctl for device
Not importing this module avoids that.
Furthermore three is value in this module having minimal dependencies as
they might not be available when it does the checks.
Ref a1fed82c44b9
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 26 May 2023 21:18:27 +0200 |
parent | 13054:f4d7fe919969 |
child | 13196:eca44e058eed |
rev | line source |
---|---|
10978
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 describe("util.human.io", function () |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local human_io |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 setup(function () |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 human_io = require "util.human.io"; |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 end); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 describe("table", function () |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 it("alignment works", function () |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 local row = human_io.table({ |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 { |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 width = 3, |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 align = "right" |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 }, |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 { |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 width = 3, |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 }, |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 }); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
19 assert.equal(" 1 | . ", row({ 1, "." })); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
20 assert.equal(" 10 | .. ", row({ 10, ".." })); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
21 assert.equal("100 | ...", row({ 100, "..." })); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
22 assert.equal("10… | ..…", row({ 1000, "...." })); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
23 |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
24 end); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
25 end); |
11896
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
26 |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
27 describe("ellipsis", function() |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
28 it("works", function() |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
29 assert.equal("…", human_io.ellipsis("abc", 1)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
30 assert.equal("a…", human_io.ellipsis("abc", 2)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
31 assert.equal("abc", human_io.ellipsis("abc", 3)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
32 |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
33 assert.equal("…", human_io.ellipsis("räksmörgås", 1)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
34 assert.equal("r…", human_io.ellipsis("räksmörgås", 2)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
35 assert.equal("rä…", human_io.ellipsis("räksmörgås", 3)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
36 assert.equal("räk…", human_io.ellipsis("räksmörgås", 4)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
37 assert.equal("räks…", human_io.ellipsis("räksmörgås", 5)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
38 assert.equal("räksm…", human_io.ellipsis("räksmörgås", 6)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
39 assert.equal("räksmö…", human_io.ellipsis("räksmörgås", 7)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
40 assert.equal("räksmör…", human_io.ellipsis("räksmörgås", 8)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
41 assert.equal("räksmörg…", human_io.ellipsis("räksmörgås", 9)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
42 assert.equal("räksmörgås", human_io.ellipsis("räksmörgås", 10)); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
43 end); |
93e9f7ae2f9b
util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents:
10978
diff
changeset
|
44 end); |
13054
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
45 |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
46 describe("parse_duration", function () |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
47 local function test(expected, duration) |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
48 assert.equal(expected, human_io.parse_duration(duration)); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
49 end |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
50 it("works", function () |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
51 test(1, "1s"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
52 test(60, "1mi"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
53 test(60, "1min"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
54 test(60, "1 min"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
55 test(60, "1 minute"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
56 test(120, "2min"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
57 test(86400, "1d"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
58 test(2678400, "1m"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
59 test(2678400, "1month"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
60 test(2678400, "1 month"); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
61 end); |
f4d7fe919969
util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents:
11896
diff
changeset
|
62 end); |
10978
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
63 end); |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
64 |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
65 |
4d3247a1f6b3
util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
66 |