advanced-search-query
Version:
Another parser for advanced search query syntax.
61 lines • 2.67 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("../src/utils");
describe('utils', () => {
describe('getQuotePairMap', () => {
const emptyQuotePairMap = { single: {}, double: {} };
test('empty', () => {
expect(utils_1.getQuotePairMap()).toEqual(emptyQuotePairMap);
expect(utils_1.getQuotePairMap('')).toEqual(emptyQuotePairMap);
expect(utils_1.getQuotePairMap(' ')).toEqual(emptyQuotePairMap);
expect(utils_1.getQuotePairMap(null)).toEqual(emptyQuotePairMap);
expect(utils_1.getQuotePairMap(undefined)).toEqual(emptyQuotePairMap);
});
test('simple pairs', () => {
const singleStr = "This is 'quoted and' this is not";
const doubleStr = 'This is "quoted and" this is not';
const locations = { 8: true, 19: true };
expect(utils_1.getQuotePairMap(singleStr)).toEqual({
single: locations,
double: {},
});
expect(utils_1.getQuotePairMap(doubleStr)).toEqual({
single: {},
double: locations,
});
});
test('two pairs', () => {
const singleStr = "This 'is' 'quoted and' this is not";
const doubleStr = 'This "is" "quoted and" this is not';
const locations = { 5: true, 8: true, 10: true, 21: true };
expect(utils_1.getQuotePairMap(singleStr)).toEqual({
single: locations,
double: {},
});
expect(utils_1.getQuotePairMap(doubleStr)).toEqual({
single: {},
double: locations,
});
});
test('simple no pairs', () => {
const singleStr = "This is quoted and' this is not";
const doubleStr = 'This is quoted and" this is not';
expect(utils_1.getQuotePairMap(singleStr)).toEqual(emptyQuotePairMap);
expect(utils_1.getQuotePairMap(doubleStr)).toEqual(emptyQuotePairMap);
});
test('intermixed', () => {
const singleStr = "This 'is \"'quoted and' this is not";
const doubleStr = 'This "is \'"quoted and" this is not';
const locations = { 5: true, 10: true };
expect(utils_1.getQuotePairMap(singleStr)).toEqual({
single: locations,
double: {},
});
expect(utils_1.getQuotePairMap(doubleStr)).toEqual({
single: {},
double: locations,
});
});
});
});
//# sourceMappingURL=utils.test.js.map