UNPKG

rdf-utils-dataset

Version:
61 lines (47 loc) 1.98 kB
import { strictEqual } from 'node:assert' import { describe, it } from 'mocha' import rdf from 'rdf-ext' import resource from '../resource.js' describe('resource', () => { it('should create sub graph for a resource', () => { const predicate = rdf.namedNode('http://example.org/predicate') const namedNode0 = rdf.namedNode('http://example.org/node0') const namedNode1 = rdf.namedNode('http://example.org/node1') const blankNode0 = rdf.blankNode() const blankNode1 = rdf.blankNode() const input = rdf.dataset([ rdf.quad(namedNode0, predicate, blankNode0), rdf.quad(blankNode0, predicate, namedNode1), rdf.quad(namedNode1, predicate, blankNode1) ]) const output = resource(input, namedNode0) const expected = rdf.dataset([ rdf.quad(namedNode0, predicate, blankNode0), rdf.quad(blankNode0, predicate, namedNode1) ]) strictEqual(output.toCanonical(), expected.toCanonical()) }) it('should handle circular links', () => { const predicate = rdf.namedNode('http://example.org/predicate') const namedNode = rdf.namedNode('http://example.org/node') const blankNode = rdf.blankNode() const input = rdf.dataset([ rdf.quad(namedNode, predicate, blankNode), rdf.quad(blankNode, predicate, namedNode) ]) const output = resource(input, namedNode) strictEqual(output.toCanonical(), input.toCanonical()) }) it('should ignore the fragment part of the subject', () => { const predicate = rdf.namedNode('http://example.org/predicate') const namedNode0 = rdf.namedNode('http://example.org/node') const namedNode1 = rdf.namedNode('http://example.org/node#fragmet') const blankNode = rdf.blankNode() const input = rdf.dataset([ rdf.quad(namedNode0, predicate, blankNode), rdf.quad(namedNode1, predicate, blankNode) ]) const output = resource(input, namedNode0) strictEqual(output.toCanonical(), input.toCanonical()) }) })