UNPKG

sqlutils

Version:

Lightweight SQL helper methods that simplify stuff (MySQL and PostgreSQL)

16 lines (12 loc) 1.12 kB
const tap = require('tap'); const format = require('./format'); tap.throws(() => format('INSERT INTO customer ?', []), 'array should have at least one element'); tap.throws(() => format('UPDATE customer SET ?', [{ a: 1 }]), 'use objects for update queries, not arrays'); tap.equal(format('INSERT INTO customer ?', { fullname: 'Test', balance: 1 }), `INSERT INTO customer (fullname,balance) VALUES ('Test',1)`); tap.equal(format('UPDATE customer SET ?', { last_seen: 'NOW()', visits: 3 }), `UPDATE customer SET last_seen=NOW(),visits=3`); tap.equal(format('UPDATE customer SET ?', { fullname: 'Test', '!visits': '(SELECT COUNT(*) FROM customer_visits)' }), `UPDATE customer SET fullname='Test',visits=(SELECT COUNT(*) FROM customer_visits)`); tap.equal(format('INSERT INTO customer ?', [{ fullname: 'Test', balance: 1 }, { fullname: 'Test 2', balance: 3 }]), `INSERT INTO customer (fullname,balance) VALUES ('Test',1),('Test 2',3)`); const input = [{a: 1, b: null}]; const backup = JSON.parse(JSON.stringify(input)); format('INSERT INTO customer ?', input); tap.same(input, backup, 'format should not mutate its params');