X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fclient.ts;h=253a9562432a75e047839f0997caf03cf23dd3ba;hb=a1eda903a497857017495f37a1fd3593ba7ab23c;hp=f33e5c1dadb71bcb50fdaf7ac2f515ea0a9b9b0d;hpb=012580d98f489e599d44a9a2a0bdc892b9455a90;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/client.ts b/server/tests/client.ts index f33e5c1da..253a95624 100644 --- a/server/tests/client.ts +++ b/server/tests/client.ts @@ -54,6 +54,9 @@ describe('Test a client controllers', function () { const channelDescription = 'my super channel description' + const watchVideoBasePaths = [ '/videos/watch/', '/w/' ] + const watchPlaylistBasePaths = [ '/videos/watch/playlist/', '/w/p/' ] + before(async function () { this.timeout(120000) @@ -111,35 +114,40 @@ describe('Test a client controllers', function () { }) describe('oEmbed', function () { + it('Should have valid oEmbed discovery tags for videos', async function () { - const path = '/videos/watch/' + servers[0].video.uuid - const res = await request(servers[0].url) - .get(path) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) + for (const basePath of watchVideoBasePaths) { + const path = basePath + servers[0].video.uuid + const res = await request(servers[0].url) + .get(path) + .set('Accept', 'text/html') + .expect(HttpStatusCode.OK_200) - const port = servers[0].port + const port = servers[0].port - const expectedLink = '` + const expectedLink = '` - expect(res.text).to.contain(expectedLink) + expect(res.text).to.contain(expectedLink) + } }) it('Should have valid oEmbed discovery tags for a playlist', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/playlist/' + playlistUUID) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) + for (const basePath of watchPlaylistBasePaths) { + const res = await request(servers[0].url) + .get(basePath + playlistUUID) + .set('Accept', 'text/html') + .expect(HttpStatusCode.OK_200) - const port = servers[0].port + const port = servers[0].port - const expectedLink = '` + const expectedLink = '` - expect(res.text).to.contain(expectedLink) + expect(res.text).to.contain(expectedLink) + } }) }) @@ -165,6 +173,26 @@ describe('Test a client controllers', function () { expect(text).to.contain(``) } + async function watchVideoPageTest (path: string) { + const res = await makeGetRequest({ url: servers[0].url, path, accept: 'text/html', statusCodeExpected: HttpStatusCode.OK_200 }) + const text = res.text + + expect(text).to.contain(``) + expect(text).to.contain(``) + expect(text).to.contain('') + expect(text).to.contain(``) + } + + async function watchPlaylistPageTest (path: string) { + const res = await makeGetRequest({ url: servers[0].url, path, accept: 'text/html', statusCodeExpected: HttpStatusCode.OK_200 }) + const text = res.text + + expect(text).to.contain(``) + expect(text).to.contain(``) + expect(text).to.contain('') + expect(text).to.contain(``) + } + it('Should have valid Open Graph tags on the account page', async function () { await accountPageTest('/accounts/' + servers[0].user.username) await accountPageTest('/a/' + servers[0].user.username) @@ -177,40 +205,16 @@ describe('Test a client controllers', function () { await channelPageTest('/@' + servers[0].videoChannel.name) }) - it('Should have valid Open Graph tags on the watch page with video id', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/' + servers[0].video.id) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) - - expect(res.text).to.contain(``) - expect(res.text).to.contain(``) - expect(res.text).to.contain('') - expect(res.text).to.contain(``) - }) - - it('Should have valid Open Graph tags on the watch page with video uuid', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/' + servers[0].video.uuid) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) - - expect(res.text).to.contain(``) - expect(res.text).to.contain(``) - expect(res.text).to.contain('') - expect(res.text).to.contain(``) + it('Should have valid Open Graph tags on the watch page', async function () { + await watchVideoPageTest('/videos/watch/' + servers[0].video.id) + await watchVideoPageTest('/videos/watch/' + servers[0].video.uuid) + await watchVideoPageTest('/w/' + servers[0].video.uuid) + await watchVideoPageTest('/w/' + servers[0].video.id) }) it('Should have valid Open Graph tags on the watch playlist page', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/playlist/' + playlistUUID) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) - - expect(res.text).to.contain(``) - expect(res.text).to.contain(``) - expect(res.text).to.contain('') - expect(res.text).to.contain(``) + await watchPlaylistPageTest('/videos/watch/playlist/' + playlistUUID) + await watchPlaylistPageTest('/w/p/' + playlistUUID) }) }) @@ -238,28 +242,36 @@ describe('Test a client controllers', function () { expect(text).to.contain(``) } - it('Should have valid twitter card on the watch video page', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/' + servers[0].video.uuid) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) + async function watchVideoPageTest (path: string) { + const res = await makeGetRequest({ url: servers[0].url, path, accept: 'text/html', statusCodeExpected: HttpStatusCode.OK_200 }) + const text = res.text - expect(res.text).to.contain('') - expect(res.text).to.contain('') - expect(res.text).to.contain(``) - expect(res.text).to.contain(``) + expect(text).to.contain('') + expect(text).to.contain('') + expect(text).to.contain(``) + expect(text).to.contain(``) + } + + async function watchPlaylistPageTest (path: string) { + const res = await makeGetRequest({ url: servers[0].url, path, accept: 'text/html', statusCodeExpected: HttpStatusCode.OK_200 }) + const text = res.text + + expect(text).to.contain('') + expect(text).to.contain('') + expect(text).to.contain(``) + expect(text).to.contain(``) + } + + it('Should have valid twitter card on the watch video page', async function () { + await watchVideoPageTest('/videos/watch/' + servers[0].video.id) + await watchVideoPageTest('/videos/watch/' + servers[0].video.uuid) + await watchVideoPageTest('/w/' + servers[0].video.uuid) + await watchVideoPageTest('/w/' + servers[0].video.id) }) it('Should have valid twitter card on the watch playlist page', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/playlist/' + playlistUUID) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) - - expect(res.text).to.contain('') - expect(res.text).to.contain('') - expect(res.text).to.contain(``) - expect(res.text).to.contain(``) + await watchPlaylistPageTest('/videos/watch/playlist/' + playlistUUID) + await watchPlaylistPageTest('/w/p/' + playlistUUID) }) it('Should have valid twitter card on the account page', async function () { @@ -304,24 +316,32 @@ describe('Test a client controllers', function () { expect(text).to.contain('') } - it('Should have valid twitter card on the watch video page', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/' + servers[0].video.uuid) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) + async function watchVideoPageTest (path: string) { + const res = await makeGetRequest({ url: servers[0].url, path, accept: 'text/html', statusCodeExpected: HttpStatusCode.OK_200 }) + const text = res.text - expect(res.text).to.contain('') - expect(res.text).to.contain('') + expect(text).to.contain('') + expect(text).to.contain('') + } + + async function watchPlaylistPageTest (path: string) { + const res = await makeGetRequest({ url: servers[0].url, path, accept: 'text/html', statusCodeExpected: HttpStatusCode.OK_200 }) + const text = res.text + + expect(text).to.contain('') + expect(text).to.contain('') + } + + it('Should have valid twitter card on the watch video page', async function () { + await watchVideoPageTest('/videos/watch/' + servers[0].video.id) + await watchVideoPageTest('/videos/watch/' + servers[0].video.uuid) + await watchVideoPageTest('/w/' + servers[0].video.uuid) + await watchVideoPageTest('/w/' + servers[0].video.id) }) it('Should have valid twitter card on the watch playlist page', async function () { - const res = await request(servers[0].url) - .get('/videos/watch/playlist/' + playlistUUID) - .set('Accept', 'text/html') - .expect(HttpStatusCode.OK_200) - - expect(res.text).to.contain('') - expect(res.text).to.contain('') + await watchPlaylistPageTest('/videos/watch/playlist/' + playlistUUID) + await watchPlaylistPageTest('/w/p/' + playlistUUID) }) it('Should have valid twitter card on the account page', async function () { @@ -378,8 +398,10 @@ describe('Test a client controllers', function () { }) it('Should use the original video URL for the canonical tag', async function () { - const res = await makeHTMLRequest(servers[1].url, '/videos/watch/' + servers[0].video.uuid) - expect(res.text).to.contain(``) + for (const basePath of watchVideoBasePaths) { + const res = await makeHTMLRequest(servers[1].url, basePath + servers[0].video.uuid) + expect(res.text).to.contain(``) + } }) it('Should use the original account URL for the canonical tag', async function () { @@ -403,8 +425,10 @@ describe('Test a client controllers', function () { }) it('Should use the original playlist URL for the canonical tag', async function () { - const res = await makeHTMLRequest(servers[1].url, '/videos/watch/playlist/' + playlistUUID) - expect(res.text).to.contain(``) + for (const basePath of watchPlaylistBasePaths) { + const res = await makeHTMLRequest(servers[1].url, basePath + playlistUUID) + expect(res.text).to.contain(``) + } }) })