Annotate

spec/util_human_io_spec.lua @ 13143:3ec48555b773

mod_storage_sql: Add UPSERT support Currently limited to SQLite3 for lack of testing on other databases. Adds a migration to replace the non-UNIQUE prosody_index, renaming it prosody_unique_index since ALTER INDEX does not seem to be portable.
author Kim Alvefur <zash@zash.se>
date Sat, 10 Jun 2023 15:44:09 +0200
parent 13054:f4d7fe919969
child 13196:eca44e058eed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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