UNPKG

@niur/google-admanager-api

Version:
89 lines 4.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const exceptions_handler_1 = require("../common/handlers/exceptions.handler"); const utils_1 = require("../common/utils"); describe('test StatementBuilder', () => { 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; expect(query).toBe('SELECT Id FROM table WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200 OFFSET 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; expect(query).toBe('SELECT Id FROM table WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200 OFFSET 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; expect(query).toBe('WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200 OFFSET 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; expect(query).toBe('WHERE a = b AND b = c ORDER BY a ASC, b DESC LIMIT 200'); }); it('to statement just limit', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).toStatement().query; expect(query).toBe('LIMIT 500'); }); it('to statement limit and offset', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).offset(1).where('a = b').orderBy('a'); expect(query.toStatement().query).toBe('WHERE a = b ORDER BY a LIMIT 500 OFFSET 1'); expect(query.removeLimitAndOffset().toStatement().query).toBe('WHERE a = b ORDER BY a'); }); it('to statement remove limit and offset', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).offset(1).toStatement().query; expect(query).toBe('LIMIT 500 OFFSET 1'); }); it('to statement not initial offset', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).where('a = b').orderBy('a'); expect(query.toStatement().query).toBe('WHERE a = b ORDER BY a LIMIT 500'); expect(query.increaseOffsetBy(120).toStatement().query).toBe('WHERE a = b ORDER BY a LIMIT 500 OFFSET 120'); }); it('to statement with initial offset', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.limit(500).offset(10).where('a = b').orderBy('a'); expect(query.toStatement().query).toBe('WHERE a = b ORDER BY a LIMIT 500 OFFSET 10'); expect(query.increaseOffsetBy(30).toStatement().query).toBe('WHERE a = b ORDER BY a LIMIT 500 OFFSET 40'); }); it('to statement empty', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.toStatement().query; expect(query).toBe(''); }); it('to statement offset without limit', () => { const statementBuilder = new utils_1.StatementBuilder(); const query = statementBuilder.offset(500); try { query.toStatement(); } catch (error) { expect(error).toBeInstanceOf(exceptions_handler_1.InvalidOperationException); } }); }); //# sourceMappingURL=statementBuilder.spec.js.map