diff options
author | Kim Alvefur <zash@zash.se> | 2022-05-08 18:03:44 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2022-05-08 18:03:44 +0200 |
commit | 11638f57e2c86a63c5f0ace88aac52429061b200 (patch) | |
tree | 409e1d422146d7da16e248fe1aa4f31c3394dfc0 /spec | |
parent | aad451c07e02e83d5da4fbd4d4d9d8a9a54b8176 (diff) | |
download | prosody-11638f57e2c86a63c5f0ace88aac52429061b200.tar.gz prosody-11638f57e2c86a63c5f0ace88aac52429061b200.zip |
util.jsonpointer: Add basic tests
Example values from RFC 6901
Diffstat (limited to 'spec')
-rw-r--r-- | spec/util_jsonpointer_spec.lua | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/util_jsonpointer_spec.lua b/spec/util_jsonpointer_spec.lua new file mode 100644 index 00000000..ce07c7a1 --- /dev/null +++ b/spec/util_jsonpointer_spec.lua @@ -0,0 +1,38 @@ +describe("util.jsonpointer", function() + local json, jp; + setup(function() + json = require "util.json"; + jp = require "util.jsonpointer"; + end) + describe("resolve()", function() + local example; + setup(function() + example = json.decode([[{ + "foo": ["bar", "baz"], + "": 0, + "a/b": 1, + "c%d": 2, + "e^f": 3, + "g|h": 4, + "i\\j": 5, + "k\"l": 6, + " ": 7, + "m~n": 8 + }]]) + end) + it("works", function() + assert.same(example, jp.resolve(example, "")); + assert.same({ "bar", "baz" }, jp.resolve(example, "/foo")); + assert.same("bar", jp.resolve(example, "/foo/0")); + assert.same(0, jp.resolve(example, "/")); + assert.same(1, jp.resolve(example, "/a~1b")); + assert.same(2, jp.resolve(example, "/c%d")); + assert.same(3, jp.resolve(example, "/e^f")); + assert.same(4, jp.resolve(example, "/g|h")); + assert.same(5, jp.resolve(example, "/i\\j")); + assert.same(6, jp.resolve(example, "/k\"l")); + assert.same(7, jp.resolve(example, "/ ")); + assert.same(8, jp.resolve(example, "/m~0n")); + end) + end) +end) |