aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-07-08 10:23:21 +0200
committerChocobozzz <me@florianbigard.com>2021-07-20 15:27:17 +0200
commitd897210c2db1ca2acc1e7b28a13127647ab2222c (patch)
treed36bcc0d17f1ff3c787beb395175e7a20d36e449
parent4f2199144e428c16460750305f737b890c1ac322 (diff)
downloadPeerTube-d897210c2db1ca2acc1e7b28a13127647ab2222c.tar.gz
PeerTube-d897210c2db1ca2acc1e7b28a13127647ab2222c.tar.zst
PeerTube-d897210c2db1ca2acc1e7b28a13127647ab2222c.zip
Introduce services command
-rw-r--r--server/tests/api/server/services.ts7
-rw-r--r--shared/extra-utils/server/servers.ts4
-rw-r--r--shared/extra-utils/videos/index.ts2
-rw-r--r--shared/extra-utils/videos/services-command.ts28
-rw-r--r--shared/extra-utils/videos/services.ts24
5 files changed, 35 insertions, 30 deletions
diff --git a/server/tests/api/server/services.ts b/server/tests/api/server/services.ts
index ea64e4040..0adf6b667 100644
--- a/server/tests/api/server/services.ts
+++ b/server/tests/api/server/services.ts
@@ -6,7 +6,6 @@ import { Video, VideoPlaylistPrivacy } from '@shared/models'
6import { 6import {
7 addVideoInPlaylist, 7 addVideoInPlaylist,
8 createVideoPlaylist, 8 createVideoPlaylist,
9 getOEmbed,
10 getVideosList, 9 getVideosList,
11 ServerInfo, 10 ServerInfo,
12 setAccessTokensToServers, 11 setAccessTokensToServers,
@@ -70,7 +69,7 @@ describe('Test services', function () {
70 for (const basePath of [ '/videos/watch/', '/w/' ]) { 69 for (const basePath of [ '/videos/watch/', '/w/' ]) {
71 const oembedUrl = 'http://localhost:' + server.port + basePath + video.uuid 70 const oembedUrl = 'http://localhost:' + server.port + basePath + video.uuid
72 71
73 const res = await getOEmbed(server.url, oembedUrl) 72 const res = await server.servicesCommand.getOEmbed({ oembedUrl })
74 const expectedHtml = '<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" ' + 73 const expectedHtml = '<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" ' +
75 `title="${video.name}" src="http://localhost:${server.port}/videos/embed/${video.uuid}" ` + 74 `title="${video.name}" src="http://localhost:${server.port}/videos/embed/${video.uuid}" ` +
76 'frameborder="0" allowfullscreen></iframe>' 75 'frameborder="0" allowfullscreen></iframe>'
@@ -91,7 +90,7 @@ describe('Test services', function () {
91 for (const basePath of [ '/videos/watch/playlist/', '/w/p/' ]) { 90 for (const basePath of [ '/videos/watch/playlist/', '/w/p/' ]) {
92 const oembedUrl = 'http://localhost:' + server.port + basePath + playlistUUID 91 const oembedUrl = 'http://localhost:' + server.port + basePath + playlistUUID
93 92
94 const res = await getOEmbed(server.url, oembedUrl) 93 const res = await server.servicesCommand.getOEmbed({ oembedUrl })
95 const expectedHtml = '<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" ' + 94 const expectedHtml = '<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts" ' +
96 `title="${playlistDisplayName}" src="http://localhost:${server.port}/video-playlists/embed/${playlistUUID}" ` + 95 `title="${playlistDisplayName}" src="http://localhost:${server.port}/video-playlists/embed/${playlistUUID}" ` +
97 'frameborder="0" allowfullscreen></iframe>' 96 'frameborder="0" allowfullscreen></iframe>'
@@ -114,7 +113,7 @@ describe('Test services', function () {
114 const maxHeight = 50 113 const maxHeight = 50
115 const maxWidth = 50 114 const maxWidth = 50
116 115
117 const res = await getOEmbed(server.url, oembedUrl, format, maxHeight, maxWidth) 116 const res = await server.servicesCommand.getOEmbed({ oembedUrl, format, maxHeight, maxWidth })
118 const expectedHtml = '<iframe width="50" height="50" sandbox="allow-same-origin allow-scripts" ' + 117 const expectedHtml = '<iframe width="50" height="50" sandbox="allow-same-origin allow-scripts" ' +
119 `title="${video.name}" src="http://localhost:${server.port}/videos/embed/${video.uuid}" ` + 118 `title="${video.name}" src="http://localhost:${server.port}/videos/embed/${video.uuid}" ` +
120 'frameborder="0" allowfullscreen></iframe>' 119 'frameborder="0" allowfullscreen></iframe>'
diff --git a/shared/extra-utils/server/servers.ts b/shared/extra-utils/server/servers.ts
index eca0689aa..cb2a8814b 100644
--- a/shared/extra-utils/server/servers.ts
+++ b/shared/extra-utils/server/servers.ts
@@ -18,7 +18,7 @@ import { makeGetRequest } from '../requests/requests'
18import { SearchCommand } from '../search' 18import { SearchCommand } from '../search'
19import { SocketIOCommand } from '../socket' 19import { SocketIOCommand } from '../socket'
20import { AccountsCommand, BlocklistCommand, SubscriptionsCommand } from '../users' 20import { AccountsCommand, BlocklistCommand, SubscriptionsCommand } from '../users'
21import { LiveCommand } from '../videos' 21import { LiveCommand, ServicesCommand } from '../videos'
22import { ConfigCommand } from './config-command' 22import { ConfigCommand } from './config-command'
23import { ContactFormCommand } from './contact-form-command' 23import { ContactFormCommand } from './contact-form-command'
24import { DebugCommand } from './debug-command' 24import { DebugCommand } from './debug-command'
@@ -101,6 +101,7 @@ interface ServerInfo {
101 blocklistCommand?: BlocklistCommand 101 blocklistCommand?: BlocklistCommand
102 subscriptionsCommand?: SubscriptionsCommand 102 subscriptionsCommand?: SubscriptionsCommand
103 liveCommand?: LiveCommand 103 liveCommand?: LiveCommand
104 servicesCommand?: ServicesCommand
104} 105}
105 106
106function parallelTests () { 107function parallelTests () {
@@ -327,6 +328,7 @@ async function runServer (server: ServerInfo, configOverrideArg?: any, args = []
327 server.blocklistCommand = new BlocklistCommand(server) 328 server.blocklistCommand = new BlocklistCommand(server)
328 server.subscriptionsCommand = new SubscriptionsCommand(server) 329 server.subscriptionsCommand = new SubscriptionsCommand(server)
329 server.liveCommand = new LiveCommand(server) 330 server.liveCommand = new LiveCommand(server)
331 server.servicesCommand = new ServicesCommand(server)
330 332
331 res(server) 333 res(server)
332 }) 334 })
diff --git a/shared/extra-utils/videos/index.ts b/shared/extra-utils/videos/index.ts
index c9c884285..fe5dc6655 100644
--- a/shared/extra-utils/videos/index.ts
+++ b/shared/extra-utils/videos/index.ts
@@ -1,6 +1,6 @@
1export * from './live-command' 1export * from './live-command'
2export * from './live' 2export * from './live'
3export * from './services' 3export * from './services-command'
4export * from './video-blacklist' 4export * from './video-blacklist'
5export * from './video-captions' 5export * from './video-captions'
6export * from './video-change-ownership' 6export * from './video-change-ownership'
diff --git a/shared/extra-utils/videos/services-command.ts b/shared/extra-utils/videos/services-command.ts
new file mode 100644
index 000000000..3b618ef66
--- /dev/null
+++ b/shared/extra-utils/videos/services-command.ts
@@ -0,0 +1,28 @@
1import { HttpStatusCode } from '../../core-utils/miscs/http-error-codes'
2import { AbstractCommand, OverrideCommandOptions } from '../shared'
3
4export class ServicesCommand extends AbstractCommand {
5
6 getOEmbed (options: OverrideCommandOptions & {
7 oembedUrl: string
8 format?: string
9 maxHeight?: number
10 maxWidth?: number
11 }) {
12 const path = '/services/oembed'
13 const query = {
14 url: options.oembedUrl,
15 format: options.format,
16 maxheight: options.maxHeight,
17 maxwidth: options.maxWidth
18 }
19
20 return this.getRequest({
21 ...options,
22
23 path,
24 query,
25 defaultExpectedStatus: HttpStatusCode.OK_200
26 })
27 }
28}
diff --git a/shared/extra-utils/videos/services.ts b/shared/extra-utils/videos/services.ts
deleted file mode 100644
index e13a788bd..000000000
--- a/shared/extra-utils/videos/services.ts
+++ /dev/null
@@ -1,24 +0,0 @@
1import * as request from 'supertest'
2import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
3
4function getOEmbed (url: string, oembedUrl: string, format?: string, maxHeight?: number, maxWidth?: number) {
5 const path = '/services/oembed'
6 const query = {
7 url: oembedUrl,
8 format,
9 maxheight: maxHeight,
10 maxwidth: maxWidth
11 }
12
13 return request(url)
14 .get(path)
15 .query(query)
16 .set('Accept', 'application/json')
17 .expect(HttpStatusCode.OK_200)
18}
19
20// ---------------------------------------------------------------------------
21
22export {
23 getOEmbed
24}