pg-template-tag
Version:
ECMAScript 6 (2015) template tag function to write queries for node-postgres.
73 lines (58 loc) • 3.41 kB
JavaScript
;
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]);
});
});