diff options
Diffstat (limited to 'shared/extra-utils/mock-servers')
-rw-r--r-- | shared/extra-utils/mock-servers/joinpeertube-versions.ts | 33 | ||||
-rw-r--r-- | shared/extra-utils/mock-servers/mock-instances-index.ts | 40 |
2 files changed, 73 insertions, 0 deletions
diff --git a/shared/extra-utils/mock-servers/joinpeertube-versions.ts b/shared/extra-utils/mock-servers/joinpeertube-versions.ts new file mode 100644 index 000000000..5ea432ecf --- /dev/null +++ b/shared/extra-utils/mock-servers/joinpeertube-versions.ts | |||
@@ -0,0 +1,33 @@ | |||
1 | import * as express from 'express' | ||
2 | import { randomInt } from '@shared/core-utils' | ||
3 | |||
4 | export class MockJoinPeerTubeVersions { | ||
5 | private latestVersion: string | ||
6 | |||
7 | initialize () { | ||
8 | return new Promise<number>(res => { | ||
9 | const app = express() | ||
10 | |||
11 | app.use('/', (req: express.Request, res: express.Response, next: express.NextFunction) => { | ||
12 | if (process.env.DEBUG) console.log('Receiving request on mocked server %s.', req.url) | ||
13 | |||
14 | return next() | ||
15 | }) | ||
16 | |||
17 | app.get('/versions.json', (req: express.Request, res: express.Response) => { | ||
18 | return res.json({ | ||
19 | peertube: { | ||
20 | latestVersion: this.latestVersion | ||
21 | } | ||
22 | }) | ||
23 | }) | ||
24 | |||
25 | const port = 42201 + randomInt(1, 100) | ||
26 | app.listen(port, () => res(port)) | ||
27 | }) | ||
28 | } | ||
29 | |||
30 | setLatestVersion (latestVersion: string) { | ||
31 | this.latestVersion = latestVersion | ||
32 | } | ||
33 | } | ||
diff --git a/shared/extra-utils/mock-servers/mock-instances-index.ts b/shared/extra-utils/mock-servers/mock-instances-index.ts new file mode 100644 index 000000000..c9e33087d --- /dev/null +++ b/shared/extra-utils/mock-servers/mock-instances-index.ts | |||
@@ -0,0 +1,40 @@ | |||
1 | import * as express from 'express' | ||
2 | import { randomInt } from '@shared/core-utils' | ||
3 | |||
4 | export class MockInstancesIndex { | ||
5 | private readonly indexInstances: { host: string, createdAt: string }[] = [] | ||
6 | |||
7 | initialize () { | ||
8 | return new Promise<number>(res => { | ||
9 | const app = express() | ||
10 | |||
11 | app.use('/', (req: express.Request, res: express.Response, next: express.NextFunction) => { | ||
12 | if (process.env.DEBUG) console.log('Receiving request on mocked server %s.', req.url) | ||
13 | |||
14 | return next() | ||
15 | }) | ||
16 | |||
17 | app.get('/api/v1/instances/hosts', (req: express.Request, res: express.Response) => { | ||
18 | const since = req.query.since | ||
19 | |||
20 | const filtered = this.indexInstances.filter(i => { | ||
21 | if (!since) return true | ||
22 | |||
23 | return i.createdAt > since | ||
24 | }) | ||
25 | |||
26 | return res.json({ | ||
27 | total: filtered.length, | ||
28 | data: filtered | ||
29 | }) | ||
30 | }) | ||
31 | |||
32 | const port = 42101 + randomInt(1, 100) | ||
33 | app.listen(port, () => res(port)) | ||
34 | }) | ||
35 | } | ||
36 | |||
37 | addInstance (host: string) { | ||
38 | this.indexInstances.push({ host, createdAt: new Date().toISOString() }) | ||
39 | } | ||
40 | } | ||