diff --git a/js/package.json b/js/package.json index 66940bdb..d7166095 100644 --- a/js/package.json +++ b/js/package.json @@ -4,10 +4,11 @@ "private": true, "devDependencies": { "mocha": "^8.0.1", - "@rdfjs/data-model": "^1.1.2" + "@rdfjs/data-model": "^1.1.2", + "standard": "^14.3.4" }, "scripts": { - "test": "wasm-pack build --dev --target nodejs && mocha", + "test": "standard test/*.js && wasm-pack build --dev --target nodejs && mocha", "build": "wasm-pack build --release --target nodejs && sed -i 's/oxigraph_js/oxigraph/g' pkg/package.json", "release": "wasm-pack pack && wasm-pack publish" } diff --git a/js/test/model.js b/js/test/model.js index eaf88fcc..084698b8 100644 --- a/js/test/model.js +++ b/js/test/model.js @@ -1,3 +1,2 @@ -const { MemoryStore } = require('../pkg/oxigraph.js'); -const assert = require('assert'); -require('../node_modules/@rdfjs/data-model/test/index.js')((new MemoryStore()).dataFactory); +const { MemoryStore } = require('../pkg/oxigraph.js') +require('../node_modules/@rdfjs/data-model/test/index.js')((new MemoryStore()).dataFactory) diff --git a/js/test/store.js b/js/test/store.js index 130cec9c..d6c52d6a 100644 --- a/js/test/store.js +++ b/js/test/store.js @@ -1,105 +1,107 @@ -const { MemoryStore } = require('../pkg/oxigraph.js'); -const assert = require('assert'); -const dataFactory = require('@rdfjs/data-model'); - -const ex = dataFactory.namedNode('http://example.com'); - -describe('MemoryStore', function() { - describe('#add()', function() { - it('an added quad should be in the store', function() { - const store = new MemoryStore(); - store.add(dataFactory.triple(ex, ex, ex)); - assert(store.has(dataFactory.triple(ex, ex, ex))); - }); - }); - - describe('#delete()', function() { - it('an removed quad should not be in the store anymore', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - assert(store.has(dataFactory.triple(ex, ex, ex))); +/* global describe, it */ + +const { MemoryStore } = require('../pkg/oxigraph.js') +const assert = require('assert') +const dataFactory = require('@rdfjs/data-model') + +const ex = dataFactory.namedNode('http://example.com') + +describe('MemoryStore', function () { + describe('#add()', function () { + it('an added quad should be in the store', function () { + const store = new MemoryStore() + store.add(dataFactory.triple(ex, ex, ex)) + assert(store.has(dataFactory.triple(ex, ex, ex))) + }) + }) + + describe('#delete()', function () { + it('an removed quad should not be in the store anymore', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + assert(store.has(dataFactory.triple(ex, ex, ex))) store.delete(dataFactory.triple(ex, ex, ex)) - assert(!store.has(dataFactory.triple(ex, ex, ex))); - }); - }); - - describe('#has()', function() { - it('an added quad should be in the store', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - assert(store.has(dataFactory.triple(ex, ex, ex))); - }); - }); - - describe('#size()', function() { - it('A store with one quad should have 1 for size', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - assert.strictEqual(1, store.size); - }); - }); - - describe('#match_quads()', function() { - it('blank pattern should return all quads', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - const results = store.match(); - assert.strictEqual(1, results.length); - assert(dataFactory.triple(ex, ex, ex).equals(results[0])); - }); - }); - - describe('#query()', function() { - it('ASK true', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - assert.strictEqual(true, store.query("ASK { ?s ?s ?s }")); - }); - - it('ASK false', function() { - const store = new MemoryStore(); - assert.strictEqual(false, store.query("ASK { FILTER(false)}")); - }); - - it('CONSTRUCT', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - const results = store.query("CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }"); - assert.strictEqual(1, results.length); - assert(dataFactory.triple(ex, ex, ex).equals(results[0])); - }); - - it('SELECT', function() { - const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]); - const results = store.query("SELECT ?s WHERE { ?s ?p ?o }"); - assert.strictEqual(1, results.length); - assert(ex.equals(results[0].get("s"))); - }); - }); - - describe('#load()', function() { - it('load NTriples in the default graph', function() { - const store = new MemoryStore(); - store.load(" .", "application/n-triples"); - assert(store.has(dataFactory.triple(ex, ex, ex))); - }); - - it('load NTriples in an other graph', function() { - const store = new MemoryStore(); - store.load(" .", "application/n-triples", null, ex); - assert(store.has(dataFactory.quad(ex, ex, ex, ex))); - }); - - it('load Turtle with a base IRI', function() { - const store = new MemoryStore(); - store.load(" <> .", "text/turtle", "http://example.com"); - assert(store.has(dataFactory.triple(ex, ex, ex))); - }); - - it('load NQuads', function() { - const store = new MemoryStore(); - store.load(" .", "application/n-quads"); - assert(store.has(dataFactory.quad(ex, ex, ex, ex))); - }); - - it('load TriG with a base IRI', function() { - const store = new MemoryStore(); - store.load("GRAPH <> { <> }", "application/trig", "http://example.com"); - assert(store.has(dataFactory.quad(ex, ex, ex, ex))); - }); - }); -}); + assert(!store.has(dataFactory.triple(ex, ex, ex))) + }) + }) + + describe('#has()', function () { + it('an added quad should be in the store', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + assert(store.has(dataFactory.triple(ex, ex, ex))) + }) + }) + + describe('#size()', function () { + it('A store with one quad should have 1 for size', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + assert.strictEqual(1, store.size) + }) + }) + + describe('#match_quads()', function () { + it('blank pattern should return all quads', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + const results = store.match() + assert.strictEqual(1, results.length) + assert(dataFactory.triple(ex, ex, ex).equals(results[0])) + }) + }) + + describe('#query()', function () { + it('ASK true', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + assert.strictEqual(true, store.query('ASK { ?s ?s ?s }')) + }) + + it('ASK false', function () { + const store = new MemoryStore() + assert.strictEqual(false, store.query('ASK { FILTER(false)}')) + }) + + it('CONSTRUCT', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + const results = store.query('CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o }') + assert.strictEqual(1, results.length) + assert(dataFactory.triple(ex, ex, ex).equals(results[0])) + }) + + it('SELECT', function () { + const store = new MemoryStore([dataFactory.triple(ex, ex, ex)]) + const results = store.query('SELECT ?s WHERE { ?s ?p ?o }') + assert.strictEqual(1, results.length) + assert(ex.equals(results[0].get('s'))) + }) + }) + + describe('#load()', function () { + it('load NTriples in the default graph', function () { + const store = new MemoryStore() + store.load(' .', 'application/n-triples') + assert(store.has(dataFactory.triple(ex, ex, ex))) + }) + + it('load NTriples in an other graph', function () { + const store = new MemoryStore() + store.load(' .', 'application/n-triples', null, ex) + assert(store.has(dataFactory.quad(ex, ex, ex, ex))) + }) + + it('load Turtle with a base IRI', function () { + const store = new MemoryStore() + store.load(' <> .', 'text/turtle', 'http://example.com') + assert(store.has(dataFactory.triple(ex, ex, ex))) + }) + + it('load NQuads', function () { + const store = new MemoryStore() + store.load(' .', 'application/n-quads') + assert(store.has(dataFactory.quad(ex, ex, ex, ex))) + }) + + it('load TriG with a base IRI', function () { + const store = new MemoryStore() + store.load('GRAPH <> { <> }', 'application/trig', 'http://example.com') + assert(store.has(dataFactory.quad(ex, ex, ex, ex))) + }) + }) +})