X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Futils%2Fmiscs%2Fmiscs.ts;h=b2f80e9b13fc9470b4d9ac3e7f2eba9ac1f71bfa;hb=62689b942b71cd1dd0d050c6ed05f884a0b325c2;hp=2147a07ff6387c9037c52188abdb15e642225b6d;hpb=26d21b7867c225d99e0625af51da4643e351d86d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/utils/miscs/miscs.ts b/server/tests/utils/miscs/miscs.ts index 2147a07ff..b2f80e9b1 100644 --- a/server/tests/utils/miscs/miscs.ts +++ b/server/tests/utils/miscs/miscs.ts @@ -1,34 +1,20 @@ +/* tslint:disable:no-unused-expression */ + +import * as chai from 'chai' +import { isAbsolute, join } from 'path' +import * as request from 'supertest' import * as WebTorrent from 'webtorrent' -import { readFile, readdir } from 'fs' +import { readFile } from 'fs-extra' +const expect = chai.expect let webtorrent = new WebTorrent() function immutableAssign (target: T, source: U) { return Object.assign<{}, T, U>({}, target, source) } -function readFilePromise (path: string) { - return new Promise((res, rej) => { - readFile(path, (err, data) => { - if (err) return rej(err) - - return res(data) - }) - }) -} - -function readdirPromise (path: string) { - return new Promise((res, rej) => { - readdir(path, (err, files) => { - if (err) return rej(err) - - return res(files) - }) - }) -} - - // Default interval -> 2 minutes -function dateIsValid (dateString: string, interval = 120000) { + // Default interval -> 5 minutes +function dateIsValid (dateString: string, interval = 300000) { const dateToCheck = new Date(dateString) const now = new Date() @@ -45,13 +31,42 @@ function webtorrentAdd (torrent: string, refreshWebTorrent = false) { return new Promise(res => webtorrent.add(torrent, res)) } +function root () { + // We are in server/tests/utils/miscs + return join(__dirname, '..', '..', '..', '..') +} + +async function testImage (url: string, imageName: string, imagePath: string, extension = '.jpg') { + const res = await request(url) + .get(imagePath) + .expect(200) + + const body = res.body + + const data = await readFile(join(__dirname, '..', '..', 'fixtures', imageName + extension)) + const minLength = body.length - ((20 * body.length) / 100) + const maxLength = body.length + ((20 * body.length) / 100) + + expect(data.length).to.be.above(minLength) + expect(data.length).to.be.below(maxLength) +} + +function buildAbsoluteFixturePath (path: string) { + if (isAbsolute(path)) { + return path + } + + return join(__dirname, '..', '..', 'fixtures', path) +} + // --------------------------------------------------------------------------- export { - readFilePromise, - readdirPromise, dateIsValid, wait, webtorrentAdd, - immutableAssign + immutableAssign, + testImage, + buildAbsoluteFixturePath, + root }