Software /
code /
prosody
Annotate
spec/util_jsonpointer_spec.lua @ 13030:1f89a2a9f532
util.human.io: Support for dynamic "proportional" columns
Instead of a percentage, this allows you to specify e.g. `width="[N]p"`, where
a width="2p" will be twice the width of a width="1p" column.
Compatibility with the old %-based widths is preserved, and percentages adding
up to more than 100 are handled more gracefully.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 06 Apr 2023 14:51:52 +0100 |
parent | 12777:4d5549de27e6 |
rev | line source |
---|---|
12495 | 1 describe("util.jsonpointer", function() |
2 local json, jp; | |
3 setup(function() | |
4 json = require "util.json"; | |
5 jp = require "util.jsonpointer"; | |
6 end) | |
7 describe("resolve()", function() | |
8 local example; | |
9 setup(function() | |
10 example = json.decode([[{ | |
11 "foo": ["bar", "baz"], | |
12 "": 0, | |
13 "a/b": 1, | |
14 "c%d": 2, | |
15 "e^f": 3, | |
16 "g|h": 4, | |
17 "i\\j": 5, | |
18 "k\"l": 6, | |
19 " ": 7, | |
20 "m~n": 8 | |
21 }]]) | |
22 end) | |
23 it("works", function() | |
12777
4d5549de27e6
util.jsonpointer: Improve tests
Kim Alvefur <zash@zash.se>
parents:
12495
diff
changeset
|
24 assert.is_nil(jp.resolve("string", "/string")) |
12495 | 25 assert.same(example, jp.resolve(example, "")); |
26 assert.same({ "bar", "baz" }, jp.resolve(example, "/foo")); | |
27 assert.same("bar", jp.resolve(example, "/foo/0")); | |
12777
4d5549de27e6
util.jsonpointer: Improve tests
Kim Alvefur <zash@zash.se>
parents:
12495
diff
changeset
|
28 assert.same(nil, jp.resolve(example, "/foo/-")); |
12495 | 29 assert.same(0, jp.resolve(example, "/")); |
30 assert.same(1, jp.resolve(example, "/a~1b")); | |
31 assert.same(2, jp.resolve(example, "/c%d")); | |
32 assert.same(3, jp.resolve(example, "/e^f")); | |
33 assert.same(4, jp.resolve(example, "/g|h")); | |
34 assert.same(5, jp.resolve(example, "/i\\j")); | |
35 assert.same(6, jp.resolve(example, "/k\"l")); | |
36 assert.same(7, jp.resolve(example, "/ ")); | |
37 assert.same(8, jp.resolve(example, "/m~0n")); | |
38 end) | |
39 end) | |
40 end) |