]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/tests/utils/miscs.ts
Fix activitypub check headers
[github/Chocobozzz/PeerTube.git] / server / tests / utils / miscs.ts
1 import * as WebTorrent from 'webtorrent'
2 import { readFile, readdir } from 'fs'
3
4 let webtorrent = new WebTorrent()
5
6 function readFilePromise (path: string) {
7 return new Promise<Buffer>((res, rej) => {
8 readFile(path, (err, data) => {
9 if (err) return rej(err)
10
11 return res(data)
12 })
13 })
14 }
15
16 function readdirPromise (path: string) {
17 return new Promise<string[]>((res, rej) => {
18 readdir(path, (err, files) => {
19 if (err) return rej(err)
20
21 return res(files)
22 })
23 })
24 }
25
26 // Default interval -> 2 minutes
27 function dateIsValid (dateString: string, interval = 120000) {
28 const dateToCheck = new Date(dateString)
29 const now = new Date()
30
31 return Math.abs(now.getTime() - dateToCheck.getTime()) <= interval
32 }
33
34 function wait (milliseconds: number) {
35 return new Promise(resolve => setTimeout(resolve, milliseconds))
36 }
37
38 function webtorrentAdd (torrent: string, refreshWebTorrent = false) {
39 if (refreshWebTorrent === true) webtorrent = new WebTorrent()
40
41 return new Promise<WebTorrent.Torrent>(res => webtorrent.add(torrent, res))
42 }
43
44 // ---------------------------------------------------------------------------
45
46 export {
47 readFilePromise,
48 readdirPromise,
49 dateIsValid,
50 wait,
51 webtorrentAdd
52 }