@itsmworkbench/utils
Version:
The usual utility functions
31 lines (30 loc) • 1.62 kB
JavaScript
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);
});
});
;