2020-01-08 05:48:54 +08:00
|
|
|
import {Config} from '../../../../src/common/config/private/Config';
|
|
|
|
import {Server} from '../../../../src/backend/server';
|
|
|
|
import * as path from 'path';
|
2021-01-04 17:32:19 +08:00
|
|
|
import * as fs from 'fs';
|
2020-01-08 05:48:54 +08:00
|
|
|
import {expect} from 'chai';
|
|
|
|
import {SuperAgentStatic} from 'superagent';
|
|
|
|
import {ProjectPath} from '../../../../src/backend/ProjectPath';
|
2021-04-02 03:48:38 +08:00
|
|
|
import {DBTestHelper} from '../../DBTestHelper';
|
2021-04-18 21:48:35 +08:00
|
|
|
import {ReIndexingSensitivity} from '../../../../src/common/config/private/PrivateConfig';
|
2024-03-26 04:38:09 +08:00
|
|
|
import {TestHelper} from '../../../TestHelper';
|
2020-01-08 05:48:54 +08:00
|
|
|
|
|
|
|
|
|
|
|
process.env.NODE_ENV = 'test';
|
|
|
|
const chai: any = require('chai');
|
|
|
|
const chaiHttp = require('chai-http');
|
|
|
|
const should = chai.should();
|
|
|
|
chai.use(chaiHttp);
|
|
|
|
|
2021-04-02 03:48:38 +08:00
|
|
|
// to help WebStorm to handle the test cases
|
|
|
|
declare let describe: any;
|
|
|
|
declare const after: any;
|
|
|
|
declare const it: any;
|
|
|
|
const tmpDescribe = describe;
|
2023-01-13 18:22:49 +08:00
|
|
|
describe = DBTestHelper.describe({sqlite: true});
|
2021-04-02 03:48:38 +08:00
|
|
|
|
|
|
|
describe('GalleryRouter', (sqlHelper: DBTestHelper) => {
|
|
|
|
describe = tmpDescribe;
|
2020-01-08 05:48:54 +08:00
|
|
|
|
|
|
|
let server: Server;
|
|
|
|
const setUp = async () => {
|
2021-04-02 03:48:38 +08:00
|
|
|
await sqlHelper.initDB();
|
2022-12-29 02:12:18 +08:00
|
|
|
Config.Users.authenticationRequired = false;
|
|
|
|
Config.Media.Video.enabled = true;
|
|
|
|
Config.Media.folder = path.join(__dirname, '../../assets');
|
2024-03-26 04:38:09 +08:00
|
|
|
Config.Media.tempFolder = TestHelper.TMP_DIR;
|
2020-12-31 05:22:40 +08:00
|
|
|
ProjectPath.reset();
|
2020-01-08 05:48:54 +08:00
|
|
|
server = new Server();
|
|
|
|
await server.onStarted.wait();
|
|
|
|
};
|
|
|
|
const tearDown = async () => {
|
2021-04-02 03:48:38 +08:00
|
|
|
await sqlHelper.clearDB();
|
2020-01-08 05:48:54 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
2021-04-02 03:48:38 +08:00
|
|
|
describe('/GET /api/gallery/content/', async () => {
|
|
|
|
|
|
|
|
beforeEach(setUp);
|
|
|
|
afterEach(tearDown);
|
|
|
|
|
|
|
|
it('should load gallery', async () => {
|
2023-11-17 06:41:05 +08:00
|
|
|
const result = await (chai.request(server.Server) as SuperAgentStatic)
|
2022-12-29 02:12:18 +08:00
|
|
|
.get(Config.Server.apiPath + '/gallery/content/');
|
2021-04-02 03:48:38 +08:00
|
|
|
|
|
|
|
(result.should as any).have.status(200);
|
|
|
|
expect(result.body.error).to.be.equal(null);
|
|
|
|
expect(result.body.result).to.not.be.equal(null);
|
|
|
|
expect(result.body.result.directory).to.not.be.equal(null);
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should load gallery twice (to force loading form db)', async () => {
|
2022-12-29 02:12:18 +08:00
|
|
|
Config.Indexing.reIndexingSensitivity = ReIndexingSensitivity.low;
|
2023-11-17 06:41:05 +08:00
|
|
|
const _ = await (chai.request(server.Server) as SuperAgentStatic)
|
2022-12-29 02:12:18 +08:00
|
|
|
.get(Config.Server.apiPath + '/gallery/content/orientation');
|
2021-04-02 03:48:38 +08:00
|
|
|
|
2023-11-17 06:41:05 +08:00
|
|
|
const result = await (chai.request(server.Server) as SuperAgentStatic)
|
2022-12-29 02:12:18 +08:00
|
|
|
.get(Config.Server.apiPath + '/gallery/content/orientation');
|
2021-04-02 03:48:38 +08:00
|
|
|
|
|
|
|
(result.should as any).have.status(200);
|
|
|
|
expect(result.body.error).to.be.equal(null);
|
|
|
|
expect(result.body.result).to.not.be.equal(null);
|
|
|
|
expect(result.body.result.directory).to.not.be.equal(null);
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
describe('/GET /api/gallery/content/video.mp4/bestFit', async () => {
|
2020-01-08 05:48:54 +08:00
|
|
|
|
|
|
|
beforeEach(setUp);
|
|
|
|
afterEach(tearDown);
|
|
|
|
|
|
|
|
it('should get video without transcoding', async () => {
|
2023-11-17 06:41:05 +08:00
|
|
|
const result = await (chai.request(server.Server) as SuperAgentStatic)
|
2022-12-29 02:12:18 +08:00
|
|
|
.get(Config.Server.apiPath + '/gallery/content/video.mp4/bestFit');
|
2020-01-08 05:48:54 +08:00
|
|
|
|
|
|
|
(result.should as any).have.status(200);
|
|
|
|
expect(result.body).to.be.instanceof(Buffer);
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
});
|