From 6fad8e51c47b9d07bea99b777c1f55c10f6d576d Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 5 Aug 2020 15:35:58 +0200 Subject: Handle playlist oembed --- server/tests/api/videos/services.ts | 75 ++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 10 deletions(-) (limited to 'server/tests/api/videos') diff --git a/server/tests/api/videos/services.ts b/server/tests/api/videos/services.ts index 5505a845a..897f37c04 100644 --- a/server/tests/api/videos/services.ts +++ b/server/tests/api/videos/services.ts @@ -1,14 +1,25 @@ /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import * as chai from 'chai' import 'mocha' -import { getOEmbed, getVideosList, ServerInfo, setAccessTokensToServers, uploadVideo } from '../../../../shared/extra-utils/index' +import * as chai from 'chai' +import { + getOEmbed, + getVideosList, + ServerInfo, + setAccessTokensToServers, + setDefaultVideoChannel, + uploadVideo, + createVideoPlaylist, + addVideoInPlaylist +} from '../../../../shared/extra-utils' import { cleanupTests, flushAndRunServer } from '../../../../shared/extra-utils/server/servers' +import { VideoPlaylistPrivacy } from '@shared/models' const expect = chai.expect describe('Test services', function () { let server: ServerInfo = null + let playlistUUID: string before(async function () { this.timeout(30000) @@ -16,17 +27,43 @@ describe('Test services', function () { server = await flushAndRunServer(1) await setAccessTokensToServers([ server ]) + await setDefaultVideoChannel([ server ]) - const videoAttributes = { - name: 'my super name' + { + const videoAttributes = { + name: 'my super name' + } + await uploadVideo(server.url, server.accessToken, videoAttributes) + + const res = await getVideosList(server.url) + server.video = res.body.data[0] } - await uploadVideo(server.url, server.accessToken, videoAttributes) - const res = await getVideosList(server.url) - server.video = res.body.data[0] + { + const res = await createVideoPlaylist({ + url: server.url, + token: server.accessToken, + playlistAttrs: { + displayName: 'The Life and Times of Scrooge McDuck', + privacy: VideoPlaylistPrivacy.PUBLIC, + videoChannelId: server.videoChannel.id + } + }) + + playlistUUID = res.body.videoPlaylist.uuid + + await addVideoInPlaylist({ + url: server.url, + token: server.accessToken, + playlistId: res.body.videoPlaylist.id, + elementAttrs: { + videoId: server.video.id + } + }) + } }) - it('Should have a valid oEmbed response', async function () { + it('Should have a valid oEmbed video response', async function () { const oembedUrl = 'http://localhost:' + server.port + '/videos/watch/' + server.video.uuid const res = await getOEmbed(server.url, oembedUrl) @@ -37,7 +74,7 @@ describe('Test services', function () { expect(res.body.html).to.equal(expectedHtml) expect(res.body.title).to.equal(server.video.name) - expect(res.body.author_name).to.equal(server.video.account.name) + expect(res.body.author_name).to.equal(server.videoChannel.displayName) expect(res.body.width).to.equal(560) expect(res.body.height).to.equal(315) expect(res.body.thumbnail_url).to.equal(expectedThumbnailUrl) @@ -45,6 +82,24 @@ describe('Test services', function () { expect(res.body.thumbnail_height).to.equal(480) }) + it('Should have a valid playlist oEmbed response', async function () { + const oembedUrl = 'http://localhost:' + server.port + '/videos/watch/playlist/' + playlistUUID + + const res = await getOEmbed(server.url, oembedUrl) + const expectedHtml = '' + + expect(res.body.html).to.equal(expectedHtml) + expect(res.body.title).to.equal('The Life and Times of Scrooge McDuck') + expect(res.body.author_name).to.equal(server.videoChannel.displayName) + expect(res.body.width).to.equal(560) + expect(res.body.height).to.equal(315) + expect(res.body.thumbnail_url).exist + expect(res.body.thumbnail_width).to.equal(223) + expect(res.body.thumbnail_height).to.equal(122) + }) + it('Should have a valid oEmbed response with small max height query', async function () { const oembedUrl = 'http://localhost:' + server.port + '/videos/watch/' + server.video.uuid const format = 'json' @@ -58,7 +113,7 @@ describe('Test services', function () { expect(res.body.html).to.equal(expectedHtml) expect(res.body.title).to.equal(server.video.name) - expect(res.body.author_name).to.equal(server.video.account.name) + expect(res.body.author_name).to.equal(server.videoChannel.displayName) expect(res.body.height).to.equal(50) expect(res.body.width).to.equal(50) expect(res.body).to.not.have.property('thumbnail_url') -- cgit v1.2.3