const {query} = require('..'); function q (description, args, result) { it(description, () => { expect(query(...args)).toEqual(result); }); } describe('query()', () => { q('handles missing query', [''], [] ); q('handles basic query', ['foobar', '//y'], [ {inner: 'foo', outer: 'foo'}, {inner: 'bar', outer: 'bar'} ] ); q('handles attribute query', ['foobar', '//*[@foo="bar"]'], [ {inner: 'foo', outer: 'foo'} ] ); q('handles string query', ['foobar', 'substring(//y[1], 2)'], [ {inner: 'oo', outer: 'oo'} ] ); it('handles invalid query', () => { expect(() => query('there', '//[]')).toThrowError('Invalid XPath query: //[]'); }); });