mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00
test: Remove root folder creation from integration tests
This should be handled by the initializer
This commit is contained in:
parent
bb65630441
commit
49a04c4d0a
@ -1,4 +1,3 @@
|
|||||||
import { mkdirSync } from 'fs';
|
|
||||||
import type { IModuleState } from 'componentsjs';
|
import type { IModuleState } from 'componentsjs';
|
||||||
import { ComponentsManager } from 'componentsjs';
|
import { ComponentsManager } from 'componentsjs';
|
||||||
import * as rimraf from 'rimraf';
|
import * as rimraf from 'rimraf';
|
||||||
@ -27,10 +26,6 @@ export function getTestFolder(name: string): string {
|
|||||||
return joinFilePath(__dirname, '../tmp', name);
|
return joinFilePath(__dirname, '../tmp', name);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createFolder(folder: string): void {
|
|
||||||
mkdirSync(folder, { recursive: true });
|
|
||||||
}
|
|
||||||
|
|
||||||
export function removeFolder(folder: string): void {
|
export function removeFolder(folder: string): void {
|
||||||
rimraf.sync(folder, { glob: false });
|
rimraf.sync(folder, { glob: false });
|
||||||
}
|
}
|
||||||
|
@ -2,30 +2,26 @@ import { createReadStream } from 'fs';
|
|||||||
import type { HttpHandler, Initializer, ResourceStore } from '../../src/';
|
import type { HttpHandler, Initializer, ResourceStore } from '../../src/';
|
||||||
import { LDP, BasicRepresentation, joinFilePath } from '../../src/';
|
import { LDP, BasicRepresentation, joinFilePath } from '../../src/';
|
||||||
import { AclHelper, ResourceHelper } from '../util/TestHelpers';
|
import { AclHelper, ResourceHelper } from '../util/TestHelpers';
|
||||||
import { BASE, getTestFolder, createFolder, removeFolder, instantiateFromConfig } from './Config';
|
import { BASE, getTestFolder, removeFolder, instantiateFromConfig } from './Config';
|
||||||
|
|
||||||
const rootFilePath = getTestFolder('full-config-acl');
|
const rootFilePath = getTestFolder('full-config-acl');
|
||||||
const stores: [string, any][] = [
|
const stores: [string, any][] = [
|
||||||
[ 'in-memory storage', {
|
[ 'in-memory storage', {
|
||||||
storeUrn: 'urn:solid-server:default:MemoryResourceStore',
|
storeUrn: 'urn:solid-server:default:MemoryResourceStore',
|
||||||
setup: jest.fn(),
|
|
||||||
teardown: jest.fn(),
|
teardown: jest.fn(),
|
||||||
}],
|
}],
|
||||||
[ 'on-disk storage', {
|
[ 'on-disk storage', {
|
||||||
storeUrn: 'urn:solid-server:default:FileResourceStore',
|
storeUrn: 'urn:solid-server:default:FileResourceStore',
|
||||||
setup: (): void => createFolder(rootFilePath),
|
|
||||||
teardown: (): void => removeFolder(rootFilePath),
|
teardown: (): void => removeFolder(rootFilePath),
|
||||||
}],
|
}],
|
||||||
];
|
];
|
||||||
|
|
||||||
describe.each(stores)('An LDP handler with auth using %s', (name, { storeUrn, setup, teardown }): void => {
|
describe.each(stores)('An LDP handler with auth using %s', (name, { storeUrn, teardown }): void => {
|
||||||
let handler: HttpHandler;
|
let handler: HttpHandler;
|
||||||
let aclHelper: AclHelper;
|
let aclHelper: AclHelper;
|
||||||
let resourceHelper: ResourceHelper;
|
let resourceHelper: ResourceHelper;
|
||||||
|
|
||||||
beforeAll(async(): Promise<void> => {
|
beforeAll(async(): Promise<void> => {
|
||||||
// Set up the internal store
|
|
||||||
await setup();
|
|
||||||
const variables: Record<string, any> = {
|
const variables: Record<string, any> = {
|
||||||
'urn:solid-server:default:variable:baseUrl': BASE,
|
'urn:solid-server:default:variable:baseUrl': BASE,
|
||||||
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
||||||
@ -46,6 +42,8 @@ describe.each(stores)('An LDP handler with auth using %s', (name, { storeUrn, se
|
|||||||
variables,
|
variables,
|
||||||
) as Record<string, any>;
|
) as Record<string, any>;
|
||||||
({ handler, store, initializer } = instances);
|
({ handler, store, initializer } = instances);
|
||||||
|
|
||||||
|
// Set up the internal store
|
||||||
await initializer.handleSafe();
|
await initializer.handleSafe();
|
||||||
|
|
||||||
// Create test helpers for manipulating the components
|
// Create test helpers for manipulating the components
|
||||||
|
@ -1,33 +1,29 @@
|
|||||||
import { DataFactory, Parser } from 'n3';
|
import { DataFactory, Parser } from 'n3';
|
||||||
import type { MockResponse } from 'node-mocks-http';
|
import type { MockResponse } from 'node-mocks-http';
|
||||||
import { ensureTrailingSlash } from '../../src/';
|
import { ensureTrailingSlash, PIM, RDF } from '../../src/';
|
||||||
import type { HttpHandler, Initializer, ResourceStore } from '../../src/';
|
import type { HttpHandler, Initializer, ResourceStore } from '../../src/';
|
||||||
import { LDP } from '../../src/util/Vocabularies';
|
import { LDP } from '../../src/util/Vocabularies';
|
||||||
import { ResourceHelper } from '../util/TestHelpers';
|
import { ResourceHelper } from '../util/TestHelpers';
|
||||||
import { BASE, getTestFolder, createFolder, removeFolder, instantiateFromConfig } from './Config';
|
import { BASE, getTestFolder, removeFolder, instantiateFromConfig } from './Config';
|
||||||
const { literal, namedNode, quad } = DataFactory;
|
const { literal, namedNode, quad } = DataFactory;
|
||||||
|
|
||||||
const rootFilePath = getTestFolder('full-config-no-auth');
|
const rootFilePath = getTestFolder('full-config-no-auth');
|
||||||
const stores: [string, any][] = [
|
const stores: [string, any][] = [
|
||||||
[ 'in-memory storage', {
|
[ 'in-memory storage', {
|
||||||
storeUrn: 'urn:solid-server:default:MemoryResourceStore',
|
storeUrn: 'urn:solid-server:default:MemoryResourceStore',
|
||||||
setup: jest.fn(),
|
|
||||||
teardown: jest.fn(),
|
teardown: jest.fn(),
|
||||||
}],
|
}],
|
||||||
[ 'on-disk storage', {
|
[ 'on-disk storage', {
|
||||||
storeUrn: 'urn:solid-server:default:FileResourceStore',
|
storeUrn: 'urn:solid-server:default:FileResourceStore',
|
||||||
setup: (): void => createFolder(rootFilePath),
|
|
||||||
teardown: (): void => removeFolder(rootFilePath),
|
teardown: (): void => removeFolder(rootFilePath),
|
||||||
}],
|
}],
|
||||||
];
|
];
|
||||||
|
|
||||||
describe.each(stores)('An LDP handler without auth using %s', (name, { storeUrn, setup, teardown }): void => {
|
describe.each(stores)('An LDP handler without auth using %s', (name, { storeUrn, teardown }): void => {
|
||||||
let handler: HttpHandler;
|
let handler: HttpHandler;
|
||||||
let resourceHelper: ResourceHelper;
|
let resourceHelper: ResourceHelper;
|
||||||
|
|
||||||
beforeAll(async(): Promise<void> => {
|
beforeAll(async(): Promise<void> => {
|
||||||
// Set up the internal store
|
|
||||||
await setup();
|
|
||||||
const variables: Record<string, any> = {
|
const variables: Record<string, any> = {
|
||||||
'urn:solid-server:default:variable:baseUrl': BASE,
|
'urn:solid-server:default:variable:baseUrl': BASE,
|
||||||
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
'urn:solid-server:default:variable:rootFilePath': rootFilePath,
|
||||||
@ -47,6 +43,8 @@ describe.each(stores)('An LDP handler without auth using %s', (name, { storeUrn,
|
|||||||
variables,
|
variables,
|
||||||
) as Record<string, any>;
|
) as Record<string, any>;
|
||||||
({ handler, initializer } = instances);
|
({ handler, initializer } = instances);
|
||||||
|
|
||||||
|
// Set up the internal store
|
||||||
await initializer.handleSafe();
|
await initializer.handleSafe();
|
||||||
|
|
||||||
// Create test helpers for manipulating the components
|
// Create test helpers for manipulating the components
|
||||||
@ -63,10 +61,15 @@ describe.each(stores)('An LDP handler without auth using %s', (name, { storeUrn,
|
|||||||
expect(response.statusCode).toBe(200);
|
expect(response.statusCode).toBe(200);
|
||||||
expect(response.getHeaders()).toHaveProperty('content-type', 'text/turtle');
|
expect(response.getHeaders()).toHaveProperty('content-type', 'text/turtle');
|
||||||
|
|
||||||
const data = response._getData().toString();
|
const parser = new Parser({ baseIRI: `${BASE}/` });
|
||||||
expect(data).toContain(`<> a ldp:Container`);
|
const quads = parser.parse(response._getData().toString());
|
||||||
|
expect(quads.some((entry): boolean => entry.equals(
|
||||||
|
quad(namedNode(`${BASE}/`), RDF.terms.type, LDP.terms.Container),
|
||||||
|
))).toBeTruthy();
|
||||||
expect(response.getHeaders().link).toContain(`<${LDP.Container}>; rel="type"`);
|
expect(response.getHeaders().link).toContain(`<${LDP.Container}>; rel="type"`);
|
||||||
expect(response.getHeaders().link).toContain(`<${BASE}/.acl>; rel="acl"`);
|
expect(response.getHeaders().link).toContain(`<${BASE}/.acl>; rel="acl"`);
|
||||||
|
// This is only here because we're accessing the root container
|
||||||
|
expect(response.getHeaders().link).toContain(`<${PIM.Storage}>; rel="type"`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can read a folder listing with a query string.', async():
|
it('can read a folder listing with a query string.', async():
|
||||||
@ -75,10 +78,14 @@ describe.each(stores)('An LDP handler without auth using %s', (name, { storeUrn,
|
|||||||
expect(response.statusCode).toBe(200);
|
expect(response.statusCode).toBe(200);
|
||||||
expect(response.getHeaders()).toHaveProperty('content-type', 'text/turtle');
|
expect(response.getHeaders()).toHaveProperty('content-type', 'text/turtle');
|
||||||
|
|
||||||
const data = response._getData().toString();
|
const parser = new Parser({ baseIRI: `${BASE}/` });
|
||||||
expect(data).toContain(`<> a ldp:Container`);
|
const quads = parser.parse(response._getData().toString());
|
||||||
|
expect(quads.some((entry): boolean => entry.equals(
|
||||||
|
quad(namedNode(`${BASE}/`), RDF.terms.type, LDP.terms.Container),
|
||||||
|
))).toBeTruthy();
|
||||||
expect(response.getHeaders().link).toContain(`<${LDP.Container}>; rel="type"`);
|
expect(response.getHeaders().link).toContain(`<${LDP.Container}>; rel="type"`);
|
||||||
expect(response.getHeaders().link).toContain(`<${BASE}/.acl>; rel="acl"`);
|
expect(response.getHeaders().link).toContain(`<${BASE}/.acl>; rel="acl"`);
|
||||||
|
expect(response.getHeaders().link).toContain(`<${PIM.Storage}>; rel="type"`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('can add a file to the store, read it and delete it.', async():
|
it('can add a file to the store, read it and delete it.', async():
|
||||||
|
Loading…
x
Reference in New Issue
Block a user