test('Test that multiple comparisons get mapped', assert => { const actual = groupBySelector(parser.parse("xbool==false;(xxref==ref1,xxref==ref2)")) const expected = { "xbool": { "selector": "xbool", "comparison": "==", "arguments": "false" }, "xxref": { "operator": "OR", "operands": [{ "selector": "xxref", "comparison": "==", "arguments": "ref1" }, { "selector": "xxref", "comparison": "==", "arguments": "ref2" }] } } assert.deepEqual(actual, expected); assert.end(); })
test('Test that a single comparison gets mapped', assert => { const actual = groupBySelector(parser.parse("xbool==false")) const expected = { "xbool": { "selector": "xbool", "comparison": "==", "arguments": "false" } } assert.deepEqual(actual, expected); assert.end(); });
test('Test selector in xref', assert => { const actual = groupBySelector(parser.parse("xxref.label==ref2")) const expected = { "xxref.label": { "selector": "xxref.label", "comparison": "==", "arguments": "ref2" } } assert.deepEqual(actual, expected); assert.end(); })
test('Test that single AND comparison gets mapped', assert => { const actual = groupBySelector(parser.parse("(xint=ge=0;xint=le=5)")) const expected = { "xint": { "operator": "AND", "operands": [{ "selector": "xint", "comparison": "=ge=", "arguments": "0" }, { "selector": "xint", "comparison": "=le=", "arguments": "5" }] } } assert.deepEqual(actual, expected); assert.end(); })
test('Test that single OR comparison gets mapped', assert => { const actual = groupBySelector(parser.parse("(xxref==ref1,xxref==ref2)")) const expected = { "xxref": { "operator": "OR", "operands": [{ "selector": "xxref", "comparison": "==", "arguments": "ref1" }, { "selector": "xxref", "comparison": "==", "arguments": "ref2" }] } } assert.deepEqual(actual, expected); assert.end(); })
test("Test that single OR comparison gets transformed back to RSQL", assert => { const actual = transformToRSQL(groupBySelector(parser.parse('(xxref==ref1,xxref==ref2)'))) const expected = '(xxref==ref1,xxref==ref2)' assert.deepEqual(actual, expected) assert.end() })
test("Test that multiple comparisons get get transformed back to RSQL", assert => { const actual = transformToRSQL(groupBySelector(parser.parse('xbool==false;(xxref==ref1,xxref==ref2)'))) const expected = 'xbool==false;(xxref==ref1,xxref==ref2)' assert.deepEqual(actual, expected) assert.end() })
test("Test that a single comparison get transformed back to RSQL", assert => { const actual = transformToRSQL(groupBySelector(parser.parse('xbool==false'))) const expected = 'xbool==false' assert.deepEqual(actual, expected) assert.end() })
test("Test that really complex MREF filter gets transformed back to RSQL", assert => { const actual = transformToRSQL(groupBySelector(parser.parse('((xmref_value==ref1,xmref_value==ref2),(xmref_value==ref3;(xmref_value==ref4,xmref_value==ref5)))'))) const expected = '((xmref_value==ref1,xmref_value==ref2),(xmref_value==ref3;(xmref_value==ref4,xmref_value==ref5)))' assert.deepEqual(actual, expected) assert.end() })
test("Test that really really complex filter gets transformed back to RSQL", assert => { const actual = transformToRSQL(groupBySelector(parser.parse('((xmref_value==ref1,xmref_value==ref2),xmref_value==ref3,(xmref_value==ref4;xmref_value==ref5));xbool==false;(xstring=q=str1,xstring=q=str2);(xint=ge=0;xint=le=5);xxref==ref1'))) const expected = '((xmref_value==ref1,xmref_value==ref2),xmref_value==ref3,(xmref_value==ref4;xmref_value==ref5));xbool==false;(xstring=q=str1,xstring=q=str2);(xint=ge=0;xint=le=5);xxref==ref1' assert.deepEqual(actual, expected) assert.end() })
test("Test that single AND comparison gets transformed back to RSQL", assert => { const actual = transformToRSQL(groupBySelector(parser.parse('(xint=ge=0;xint=le=5)'))) const expected = '(xint=ge=0;xint=le=5)' assert.deepEqual(actual, expected) assert.end() })