diff --git a/src/backend/middlewares/GalleryMWs.ts b/src/backend/middlewares/GalleryMWs.ts index 09af4f73..a33e03b5 100644 --- a/src/backend/middlewares/GalleryMWs.ts +++ b/src/backend/middlewares/GalleryMWs.ts @@ -186,23 +186,11 @@ export class GalleryMWs { } const fullMediaPath: string = req.resultPipe; - - try { - if ((await fsp.stat(fullMediaPath)).isDirectory()) { - return next(); - } - } catch (e) { - return next(new ErrorDTO(ErrorCodes.GENERAL_ERROR, 'no such file:' + req.params.mediaPath, 'can\'t find file: ' + fullMediaPath)); - } - - - req.resultPipe = fullMediaPath; - const convertedVideo = VideoProcessing.generateConvertedFilePath(fullMediaPath); // check if transcoded video exist try { - await fsp.access(fullMediaPath); + await fsp.access(convertedVideo); req.resultPipe = convertedVideo; } catch (e) { } diff --git a/test/backend/integration/routers/GalleryRouter.ts b/test/backend/integration/routers/GalleryRouter.ts new file mode 100644 index 00000000..5b59eb33 --- /dev/null +++ b/test/backend/integration/routers/GalleryRouter.ts @@ -0,0 +1,61 @@ +import {Config} from '../../../../src/common/config/private/Config'; +import {ServerConfig} from '../../../../src/common/config/private/IPrivateConfig'; +import {Server} from '../../../../src/backend/server'; +import * as path from 'path'; +import * as util from 'util'; +import {expect} from 'chai'; +import * as rimraf from 'rimraf'; +import {SQLConnection} from '../../../../src/backend/model/database/sql/SQLConnection'; +import {SuperAgentStatic} from 'superagent'; +import {ProjectPath} from '../../../../src/backend/ProjectPath'; + + +process.env.NODE_ENV = 'test'; +const chai: any = require('chai'); +const chaiHttp = require('chai-http'); +const should = chai.should(); +chai.use(chaiHttp); + +const rimrafPR = util.promisify(rimraf); +describe('GalleryRouter', () => { + + const tempDir = path.join(__dirname, '../../tmp'); + let server: Server; + const setUp = async () => { + await rimrafPR(tempDir); + Config.Client.authenticationRequired = false; + Config.Server.Threading.enabled = false; + Config.Client.Media.Video.enabled = true; + Config.Server.Database.type = ServerConfig.DatabaseType.sqlite; + Config.Server.Database.dbFolder = tempDir; + ProjectPath.ImageFolder = path.join(__dirname, '../../assets'); + ProjectPath.TempFolder = tempDir; + + server = new Server(); + await server.onStarted.wait(); + + }; + const tearDown = async () => { + await SQLConnection.close(); + await rimrafPR(tempDir); + }; + + + describe('/GET /api/gallery/content/video.mp4/bestFit', () => { + + beforeEach(setUp); + afterEach(tearDown); + + it('should get video without transcoding', async () => { + const result = await (chai.request(server.App) as SuperAgentStatic) + .get('/api/gallery/content/video.mp4/bestFit'); + + (result.should as any).have.status(200); + expect(result.body).to.be.instanceof(Buffer); + }); + + + }); + + +}); diff --git a/test/backend/integration/routers/SharingRouter.ts b/test/backend/integration/routers/SharingRouter.ts index 8356f8ed..0796a021 100644 --- a/test/backend/integration/routers/SharingRouter.ts +++ b/test/backend/integration/routers/SharingRouter.ts @@ -22,7 +22,7 @@ const should = chai.should(); chai.use(chaiHttp); const rimrafPR = util.promisify(rimraf); -describe('Sharing', () => { +describe('SharingRouter', () => { const testUser: UserDTO = { id: 1,