fix: rdf convertors should not read or write plain JSON

This commit is contained in:
Thomas Dupont 2022-06-28 13:39:35 +02:00 committed by Joachim Van Herwegen
parent dacd6d0006
commit 9ecb769e09
2 changed files with 11 additions and 3 deletions

View File

@ -13,7 +13,10 @@ import type { RepresentationConverterArgs } from './RepresentationConverter';
*/
export class RdfToQuadConverter extends BaseTypedRepresentationConverter {
public constructor() {
super(rdfParser.getContentTypes(), INTERNAL_QUADS);
const inputTypes = rdfParser.getContentTypes()
// ContentType application/json MAY NOT be converted to Quad.
.then((types): string[] => types.filter((type): boolean => type !== 'application/json'));
super(inputTypes, INTERNAL_QUADS);
}
public async handle({ representation, identifier }: RepresentationConverterArgs): Promise<Representation> {

View File

@ -18,12 +18,17 @@ describe('A RdfToQuadConverter', (): void => {
const identifier: ResourceIdentifier = { path: 'path' };
it('supports serializing as quads.', async(): Promise<void> => {
const types = await rdfParser.getContentTypes();
for (const type of types) {
const types = rdfParser.getContentTypes()
.then((inputTypes): string[] => inputTypes.filter((type): boolean => type !== 'application/json'));
for (const type of await types) {
await expect(converter.getOutputTypes(type)).resolves.toEqual({ [INTERNAL_QUADS]: 1 });
}
});
it('may not handle application/json to quad conversion.', async(): Promise<void> => {
await expect(converter.getOutputTypes('application/json')).resolves.toEqual({ });
});
it('can handle turtle to quad conversions.', async(): Promise<void> => {
const metadata = new RepresentationMetadata('text/turtle');
const representation = { metadata } as Representation;