fix: do not output filesystem container size

* fix: do not output filesystem container size

* fix: only omit size metadata for containers

Signed-off-by: Wouter Termont <woutermont@gmail.com>
This commit is contained in:
Wouter Termont 2021-02-12 09:18:09 +01:00 committed by GitHub
parent 30cebec32a
commit 1486f01aaf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View File

@ -326,11 +326,13 @@ export class FileDataAccessor implements DataAccessor {
*/ */
private generatePosixQuads(subject: NamedNode, stats: Stats): Quad[] { private generatePosixQuads(subject: NamedNode, stats: Stats): Quad[] {
const quads: Quad[] = []; const quads: Quad[] = [];
pushQuad(quads, subject, POSIX.terms.size, toLiteral(stats.size, XSD.terms.integer));
pushQuad(quads, subject, DC.terms.modified, toLiteral(stats.mtime.toISOString(), XSD.terms.dateTime)); pushQuad(quads, subject, DC.terms.modified, toLiteral(stats.mtime.toISOString(), XSD.terms.dateTime));
pushQuad(quads, subject, POSIX.terms.mtime, toLiteral( pushQuad(quads, subject, POSIX.terms.mtime, toLiteral(
Math.floor(stats.mtime.getTime() / 1000), XSD.terms.integer, Math.floor(stats.mtime.getTime() / 1000), XSD.terms.integer,
)); ));
if (!stats.isDirectory()) {
pushQuad(quads, subject, POSIX.terms.size, toLiteral(stats.size, XSD.terms.integer));
}
return quads; return quads;
} }

View File

@ -104,6 +104,13 @@ describe('A FileDataAccessor', (): void => {
expect(metadata.get(POSIX.mtime)).toEqualRdfTerm(toLiteral(Math.floor(now.getTime() / 1000), XSD.terms.integer)); expect(metadata.get(POSIX.mtime)).toEqualRdfTerm(toLiteral(Math.floor(now.getTime() / 1000), XSD.terms.integer));
}); });
it('does not generate size metadata for a container.', async(): Promise<void> => {
cache.data = { container: {}};
metadata = await accessor.getMetadata({ path: `${base}container/` });
expect(metadata.get(POSIX.size)).toBeUndefined();
expect(metadata.get(DC.modified)).toEqualRdfTerm(toLiteral(now.toISOString(), XSD.terms.dateTime));
});
it('generates the metadata for a container and its non-meta children.', async(): Promise<void> => { it('generates the metadata for a container and its non-meta children.', async(): Promise<void> => {
cache.data = { container: { resource: 'data', 'resource.meta': 'metadata', notAFile: 5, container2: {}}}; cache.data = { container: { resource: 'data', 'resource.meta': 'metadata', notAFile: 5, container2: {}}};
metadata = await accessor.getMetadata({ path: `${base}container/` }); metadata = await accessor.getMetadata({ path: `${base}container/` });
@ -111,7 +118,7 @@ describe('A FileDataAccessor', (): void => {
expect(metadata.getAll(RDF.type)).toEqualRdfTermArray( expect(metadata.getAll(RDF.type)).toEqualRdfTermArray(
[ LDP.terms.Container, LDP.terms.BasicContainer, LDP.terms.Resource ], [ LDP.terms.Container, LDP.terms.BasicContainer, LDP.terms.Resource ],
); );
expect(metadata.get(POSIX.size)).toEqualRdfTerm(toLiteral(0, XSD.terms.integer)); expect(metadata.get(POSIX.size)).toBeUndefined();
expect(metadata.get(DC.modified)).toEqualRdfTerm(toLiteral(now.toISOString(), XSD.terms.dateTime)); expect(metadata.get(DC.modified)).toEqualRdfTerm(toLiteral(now.toISOString(), XSD.terms.dateTime));
expect(metadata.get(POSIX.mtime)).toEqualRdfTerm(toLiteral(Math.floor(now.getTime() / 1000), XSD.terms.integer)); expect(metadata.get(POSIX.mtime)).toEqualRdfTerm(toLiteral(Math.floor(now.getTime() / 1000), XSD.terms.integer));
expect(metadata.getAll(LDP.contains)).toEqualRdfTermArray( expect(metadata.getAll(LDP.contains)).toEqualRdfTermArray(