UNPKG

@smallprod/models

Version:
61 lines (60 loc) 2.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 __1 = require("../.."); const chai_1 = require("chai"); const query_1 = __importDefault(require("../_utils/query")); describe.each([ ['MariaDB', 'maria'], ['MySql', 'mysql'], ['PostgresSql', 'postgres'], ])('Text query tests with %s', (dbName, name) => { let dbManager; let model; beforeAll(async (done) => { dbManager = __1.DbManager.getInstance(); const m = dbManager.get(name); if (m) { model = m; } else { throw new Error(`Database connection not found ${name}`); } await query_1.default.create(model, name); done(); }); beforeEach(async (done) => { await model.startTransaction(); done(); }); test('An insert query should add a row in the database', async () => { await model.query(`INSERT INTO categories (label) VALUES ('test');`); const res = await model.query(`SELECT * FROM categories`); if (res instanceof Array) { chai_1.expect(res.length).to.be.equal(1); } else { chai_1.expect(res.rows.length).to.be.equal(1); } }); test('Query with parameters', async () => { await model.query(`INSERT INTO categories (label) VALUES ('toast'), ('toto'), ('titi')`); const res = await model.query(`SELECT * FROM categories WHERE label LIKE ${name === 'postgres' ? '$1' : '?'}`, ['to%']); if (res instanceof Array) { chai_1.expect(res.length).to.be.equal(2); } else { chai_1.expect(res.rows.length).to.be.equal(2); } }); afterEach(async (done) => { await model.rollback(); done(); }); afterAll(async (done) => { await query_1.default.delete(model); done(); }); });