UNPKG

@guardian/google-admanager-api

Version:

Google Ad Manager API Client Library for NodeJs

101 lines 5.03 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const node_test_1 = require("node:test"); const node_assert_1 = __importDefault(require("node:assert")); const exceptions_handler_1 = require("../common/handlers/exceptions.handler"); const utils_1 = require("../common/utils"); (0, node_test_1.describe)("test StatementBuilder", () => { (0, node_test_1.it)("to statement for pql table", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder .select("Id") .from("table") .where("a = b AND b = c") .orderBy("a ASC, b DESC") .limit(200) .offset(1) .toStatement().query; node_assert_1.default.equal(query, "SELECT Id FROM table WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200 OFFSET 1"); }); (0, node_test_1.it)("to statement with keywords", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder .select("Id") .from("FrOM table") .where("WHERE a = b AND b = c") .orderBy("order BY a ASC, b DESC") .limit(200) .offset(1) .toStatement().query; node_assert_1.default.equal(query, "SELECT Id FROM table WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200 OFFSET 1"); }); (0, node_test_1.it)("to statement not pql table", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder .where("a = b AND b = c") .orderBy("a ASC, b DESC") .limit(200) .offset(1) .toStatement().query; node_assert_1.default.equal(query, "WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200 OFFSET 1"); }); (0, node_test_1.it)("to statement not offset", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder .where("a = b AND b = c") .orderBy("a ASC, b DESC") .limit(200) .toStatement().query; node_assert_1.default.equal(query, "WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200"); }); (0, node_test_1.it)("to statement just limit", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).toStatement().query; node_assert_1.default.equal(query, "LIMIT 500"); }); (0, node_test_1.it)("to statement limit and offset", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder .limit(500) .offset(1) .where("a = b") .orderBy("a"); node_assert_1.default.equal(query.toStatement().query, "WHERE a = b ORDER BY a LIMIT 500 OFFSET 1"); node_assert_1.default.equal(query.removeLimitAndOffset().toStatement().query, "WHERE a = b ORDER BY a"); }); (0, node_test_1.it)("to statement remove limit and offset", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).offset(1).toStatement().query; node_assert_1.default.equal(query, "LIMIT 500 OFFSET 1"); }); (0, node_test_1.it)("to statement not initial offset", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).where("a = b").orderBy("a"); node_assert_1.default.equal(query.toStatement().query, "WHERE a = b ORDER BY a LIMIT 500"); node_assert_1.default.equal(query.increaseOffsetBy(120).toStatement().query, "WHERE a = b ORDER BY a LIMIT 500 OFFSET 120"); }); (0, node_test_1.it)("to statement with initial offset", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder .limit(500) .offset(10) .where("a = b") .orderBy("a"); node_assert_1.default.equal(query.toStatement().query, "WHERE a = b ORDER BY a LIMIT 500 OFFSET 10"); node_assert_1.default.equal(query.increaseOffsetBy(30).toStatement().query, "WHERE a = b ORDER BY a LIMIT 500 OFFSET 40"); }); (0, node_test_1.it)("to statement empty", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.toStatement().query; node_assert_1.default.equal(query, ""); }); (0, node_test_1.it)("to statement offset without limit", () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.offset(500); node_assert_1.default.throws(() => query.toStatement(), exceptions_handler_1.InvalidOperationException); }); }); //# sourceMappingURL=statementBuilder.spec.js.map