From ba95ecf6e8557e2ff5eb5961a3581d6a907a3cab Mon Sep 17 00:00:00 2001 From: Martin van Harmelen Date: Thu, 22 Dec 2022 18:22:01 +0100 Subject: [PATCH] Add failing test for double inverse property path --- test/generation/PropertyPath-test.js | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/generation/PropertyPath-test.js diff --git a/test/generation/PropertyPath-test.js b/test/generation/PropertyPath-test.js new file mode 100644 index 00000000..2f22cb7e --- /dev/null +++ b/test/generation/PropertyPath-test.js @@ -0,0 +1,31 @@ +const SparqlParser = require('../../sparql').Parser; +const SparqlGenerator = require('../../sparql').Generator; +const expect = require('expect'); + +describe('Property Path Support Test', function () { + + it('should unparse double inverse property path', function () { + const query = `ASK WHERE { ?s ^(^) ?o. }`; + + const sparqlParser = new SparqlParser(); + let selectQueryAST; + try { + selectQueryAST = sparqlParser.parse(query); + } catch (e) { + throw Error(`Could not parse "${query}" :\n${e}`); + } + + const generator = new SparqlGenerator({}); + let outputQueryString; + try { + outputQueryString = generator.stringify(selectQueryAST); + } catch (e) { + throw Error(`Could not generate "${JSON.parse(selectQueryAST, null, 2)}" :\n${e}`); + } + + const trimedInputQuery = query.replace(/ /g, " "); + const trimedOutputQuery = outputQueryString.replace(/ /g, " "); + + expect(trimedOutputQuery).toEqual(trimedInputQuery); + }); +});