test(`${cnNamesMap[cn1]} or ${cnNamesMap[cn2]}`, () => { const qry = parse(muto.where(cnMap[cn1]).or(cnMap[cn2])); expect(qry).toBeInstanceOf(bob.BoolQuery); expect(qry).toEqual( bob.boolQuery().should([cnQryMap[cn1], cnQryMap[cn2]]) ); });
test(`${cnNamesMap[cn1]} or ${cnNamesMap[cn2]} or ${ cnNamesMap[cn3] }`, () => { const qry = parse( muto .where(cnMap[cn1]) .or(cnMap[cn2]) .or(cnMap[cn3]) ); expect(qry).toBeInstanceOf(bob.BoolQuery); expect(qry).toEqual( bob .boolQuery() .should([cnQryMap[cn1], cnQryMap[cn2], cnQryMap[cn3]]) ); });
test(`(${cnNamesMap[cn1]} or ${cnNamesMap[cn2]}) and ${ cnNamesMap[cn3] }`, () => { const qry = parse( muto .where(muto.where(cnMap[cn1]).or(cnMap[cn2])) .and(cnMap[cn3]) ); expect(qry).toBeInstanceOf(bob.BoolQuery); expect(qry).toEqual( bob .boolQuery() .must([ bob .boolQuery() .should([cnQryMap[cn1], cnQryMap[cn2]]), cnQryMap[cn3] ]) ); });
test(`${cnNamesMap[cn1]} or (${cnNamesMap[cn2]} and ${ cnNamesMap[cn3] })`, () => { const qry = parse( muto .where(cnMap[cn1]) .or(muto.where(cnMap[cn2]).and(cnMap[cn3])) ); expect(qry).toBeInstanceOf(bob.BoolQuery); expect(qry).toEqual( bob .boolQuery() .should([ cnQryMap[cn1], bob.boolQuery().must([cnQryMap[cn2], cnQryMap[cn3]]) ]) ); });
test(`(${cnNamesMap[cn1]} and ${cnNamesMap[cn2]}) or ${ cnNamesMap[cn3] }`, () => { const qry = parse( muto .where(muto.where(cnMap[cn1]).and(cnMap[cn2])) .or(cnMap[cn3]) ); expect(qry).toBeInstanceOf(bob.BoolQuery); expect(qry).toEqual( bob .boolQuery() .should([ bob .boolQuery() .must([cnQryMap[cn1], cnQryMap[cn2]]), cnQryMap[cn3] ]) ); });
test(`${cnNamesMap[cn1]} and (${cnNamesMap[cn2]} or ${ cnNamesMap[cn3] })`, () => { const qry = parse( muto .where(cnMap[cn1]) .and(muto.where(cnMap[cn2]).or(cnMap[cn3])) ); expect(qry).toBeInstanceOf(bob.BoolQuery); expect(qry).toEqual( bob .boolQuery() .must([ cnQryMap[cn1], bob .boolQuery() .should([cnQryMap[cn2], cnQryMap[cn3]]) ]) ); });