PublicE2EMedia: Port the extra test from the private api

This ports the extra tests in the POST /media test from the private apis to the public apis E2E tests.
Also the whole test suit was renamed to 'Media'.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
This commit is contained in:
Philip Molares 2021-03-24 11:24:39 +01:00 committed by David Mehren
parent 6943399dcf
commit 25e310b7eb
No known key found for this signature in database
GPG key ID: 185982BA4C42B7C3

View file

@ -31,7 +31,7 @@ import { TokenAuthGuard } from '../../src/auth/token-auth.guard';
import { MockAuthGuard } from '../../src/auth/mock-auth.guard'; import { MockAuthGuard } from '../../src/auth/mock-auth.guard';
import { join } from 'path'; import { join } from 'path';
describe('Notes', () => { describe('Media', () => {
let app: NestExpressApplication; let app: NestExpressApplication;
let mediaService: MediaService; let mediaService: MediaService;
let uploadPath: string; let uploadPath: string;
@ -77,7 +77,8 @@ describe('Notes', () => {
mediaService = moduleRef.get('MediaService'); mediaService = moduleRef.get('MediaService');
}); });
it('POST /media', async () => { describe('POST /media', () => {
it('works', async () => {
const uploadResponse = await request(app.getHttpServer()) const uploadResponse = await request(app.getHttpServer())
.post('/media') .post('/media')
.attach('file', 'test/public-api/fixtures/test.png') .attach('file', 'test/public-api/fixtures/test.png')
@ -93,6 +94,38 @@ describe('Notes', () => {
// delete the file afterwards // delete the file afterwards
await fs.unlink(join(uploadPath, fileName)); await fs.unlink(join(uploadPath, fileName));
}); });
describe('fails:', () => {
it('MIME type not supported', async () => {
await request(app.getHttpServer())
.post('/media')
.attach('file', 'test/public-api/fixtures/test.zip')
.set('HedgeDoc-Note', 'test_upload_media')
.expect(400);
expect(await fs.access(uploadPath)).toBeFalsy();
});
it('note does not exist', async () => {
await request(app.getHttpServer())
.post('/media')
.attach('file', 'test/public-api/fixtures/test.zip')
.set('HedgeDoc-Note', 'i_dont_exist')
.expect(400);
expect(await fs.access(uploadPath)).toBeFalsy();
});
it('mediaBackend error', async () => {
await fs.rmdir(uploadPath);
await fs.mkdir(uploadPath, {
mode: '444',
});
await request(app.getHttpServer())
.post('/media')
.attach('file', 'test/public-api/fixtures/test.png')
.set('HedgeDoc-Note', 'test_upload_media')
.expect('Content-Type', /json/)
.expect(500);
await fs.rmdir(uploadPath);
});
});
});
it('DELETE /media/{filename}', async () => { it('DELETE /media/{filename}', async () => {
const testImage = await fs.readFile('test/public-api/fixtures/test.png'); const testImage = await fs.readFile('test/public-api/fixtures/test.png');