UNPKG

@itsmworkbench/utils

Version:

The usual utility functions

31 lines (30 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const strings_1 = require("./strings"); describe('escapeSqlParameters', () => { const lookupMap = { 'projectId': { escape: true }, 'env.name': { escape: true }, 'userId': { escape: false }, }; test('escapes parameters that require it', () => { const sql = "SELECT * FROM users WHERE userId = :userId AND projectId = :projectId"; const expected = "SELECT * FROM users WHERE userId = :userId AND projectId = ':projectId'"; expect((0, strings_1.escapeSqlParameters)(sql, lookupMap)).toBe(expected); }); test('handles parameters with dots and escapes as required', () => { const sql = "SELECT * FROM config WHERE key = :env.name"; const expected = "SELECT * FROM config WHERE key = ':env.name'"; expect((0, strings_1.escapeSqlParameters)(sql, lookupMap)).toBe(expected); }); test('leaves parameters without escape requirement unchanged', () => { const sql = "DELETE FROM sessions WHERE userId = :userId"; const expected = "DELETE FROM sessions WHERE userId = :userId"; expect((0, strings_1.escapeSqlParameters)(sql, lookupMap)).toBe(expected); }); test('correctly processes mixed parameters', () => { const sql = "UPDATE projects SET name = :name WHERE projectId = :projectId AND userId = :userId"; const expected = "UPDATE projects SET name = :name WHERE projectId = ':projectId' AND userId = :userId"; expect((0, strings_1.escapeSqlParameters)(sql, lookupMap)).toBe(expected); }); });