UNPKG

pg-template-tag

Version:

ECMAScript 6 (2015) template tag function to write queries for node-postgres.

73 lines (58 loc) 3.41 kB
"use strict"; var _templateObject = _taggedTemplateLiteral(["foo ", " ", " bar ", ""], ["foo ", " ", " bar ", ""]), _templateObject2 = _taggedTemplateLiteral(["foo ", " ", " ", ""], ["foo ", " ", " ", ""]), _templateObject3 = _taggedTemplateLiteral(["bar ", " ", " ", ""], ["bar ", " ", " ", ""]), _templateObject4 = _taggedTemplateLiteral(["baz"], ["baz"]), _templateObject5 = _taggedTemplateLiteral(["foobar ", ""], ["foobar ", ""]), _templateObject6 = _taggedTemplateLiteral(["", ""], ["", ""]), _templateObject7 = _taggedTemplateLiteral(["foo"], ["foo"]), _templateObject8 = _taggedTemplateLiteral(["bar ", ""], ["bar ", ""]), _templateObject9 = _taggedTemplateLiteral(["bar"], ["bar"]), _templateObject10 = _taggedTemplateLiteral(["", " ", " ", ""], ["", " ", " ", ""]); var _ = require("./"); var _2 = _interopRequireDefault(_); var _assert = require("assert"); var _assert2 = _interopRequireDefault(_assert); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } describe("pg-template-tag", function () { it("collects values and write placeholders", function () { var literal = (0, _2.default)(_templateObject, 123, "abc", null); _assert2.default.equal(literal.text, "foo $1 $2 bar $3"); _assert2.default.deepEqual(literal.values, [123, "abc", null]); }); it("accepts nested literals", function () { var literal = (0, _2.default)(_templateObject2, (0, _2.default)(_templateObject3, 1, 2, (0, _2.default)(_templateObject4)), (0, _2.default)(_templateObject5, 3), 4); _assert2.default.equal(literal.text, "foo bar $1 $2 baz foobar $3 $4"); _assert2.default.deepEqual(literal.values, [1, 2, 3, 4]); }); it("does not interpolate arrays into values array", function () { var literal = (0, _2.default)(_templateObject6, [1, 2, 3]); _assert2.default.deepEqual(literal.values, [[1, 2, 3]]); }); it("joins SQL instances", function () { var literal = (0, _.join)([(0, _2.default)(_templateObject7), (0, _2.default)(_templateObject8, 123), (0, _2.default)(_templateObject6, 456)], " sep "); _assert2.default.equal(literal.text, "foo sep bar $1 sep $2"); _assert2.default.deepEqual(literal.values, [123, 456]); }); it("joins with default comma", function () { var literal = (0, _.join)([(0, _2.default)(_templateObject7), (0, _2.default)(_templateObject9)]); _assert2.default.equal(literal.text, "foo,bar"); }); it("joins other types", function () { var literal = (0, _.join)([1, 'hello', [1, 2, 3]]); _assert2.default.equal(literal.text, "$1,$2,$3"); _assert2.default.deepEqual(literal.values, [1, 'hello', [1, 2, 3]]); }); it("reuses values for reused child parts", function () { var child = (0, _2.default)(_templateObject6, 0); var literal = (0, _2.default)(_templateObject10, child, child, child); _assert2.default.equal(literal.text, '$1 $1 $1'); _assert2.default.deepEqual(literal.values, [0]); }); it("does not reuse values if child parts aren't reused", function () { var literal = (0, _2.default)(_templateObject10, 0, 0, 0); _assert2.default.equal(literal.text, '$1 $2 $3'); _assert2.default.deepEqual(literal.values, [0, 0, 0]); }); });