File

spec/util_jsonpointer_spec.lua @ 12831:1cdaf21584da 0.12

net.http.server: Fix #1789 Unregistering the response before sending the trailer of the chunked transfer encoding prevents opportunistic writes from being invoked and running this code again when, which may cause an error when closing the file handle a second time. Normally the file size is known, so no chuck headers are sent.
author Kim Alvefur <zash@zash.se>
date Sun, 08 Jan 2023 13:35:04 +0100
parent 12495:5bf9056dca2c
child 12777:4d5549de27e6
line wrap: on
line source

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)