CommunitySolidServer/test/unit/util/QuadUtil.test.ts
Joachim Van Herwegen 9ceb62b8b6 refactor: Remove @rdfjs/data-model dependency
We already have N3.js for term generation.
No need to have two solutions there.
2022-02-11 15:28:50 +01:00

40 lines
1.4 KiB
TypeScript

import 'jest-rdf';
import { DataFactory } from 'n3';
import { parseQuads, serializeQuads } from '../../../src/util/QuadUtil';
import { guardedStreamFrom, readableToString } from '../../../src/util/StreamUtil';
const { literal, namedNode, quad } = DataFactory;
describe('QuadUtil', (): void => {
describe('#serializeQuads', (): void => {
it('converts quads to the requested format.', async(): Promise<void> => {
const quads = [ quad(
namedNode('pre:sub'),
namedNode('pre:pred'),
literal('obj'),
) ];
const stream = serializeQuads(quads, 'application/n-triples');
await expect(readableToString(stream)).resolves.toMatch('<pre:sub> <pre:pred> "obj" .');
});
});
describe('#parseQuads', (): void => {
it('parses quads.', async(): Promise<void> => {
const stream = guardedStreamFrom([ '<pre:sub> <pre:pred> "obj".' ]);
await expect(parseQuads(stream)).resolves.toEqualRdfQuadArray([ quad(
namedNode('pre:sub'),
namedNode('pre:pred'),
literal('obj'),
) ]);
});
it('parses quads with the given options.', async(): Promise<void> => {
const stream = guardedStreamFrom([ '<> <pre:pred> "obj".' ]);
await expect(parseQuads(stream, { baseIRI: 'pre:sub' })).resolves.toEqualRdfQuadArray([ quad(
namedNode('pre:sub'),
namedNode('pre:pred'),
literal('obj'),
) ]);
});
});
});