From 2422c46b27790d94fd29a7092170cee5a1b56008 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 15 Feb 2018 14:46:26 +0100 Subject: Implement support field in video and video channel --- server/tests/api/check-params/users.ts | 8 ++ server/tests/api/check-params/video-channels.ts | 15 ++- server/tests/api/check-params/videos.ts | 18 +++- server/tests/api/server/follows.ts | 1 + server/tests/api/server/handle-down.ts | 2 + server/tests/api/users/users-multiple-servers.ts | 24 ++++- server/tests/api/users/users.ts | 21 ++++ server/tests/api/videos/multiple-servers.ts | 11 ++ server/tests/api/videos/single-server.ts | 2 + server/tests/api/videos/video-channels.ts | 122 ++++++++++++++--------- 10 files changed, 173 insertions(+), 51 deletions(-) (limited to 'server/tests/api') diff --git a/server/tests/api/check-params/users.ts b/server/tests/api/check-params/users.ts index d9dea0713..ee591d620 100644 --- a/server/tests/api/check-params/users.ts +++ b/server/tests/api/check-params/users.ts @@ -255,6 +255,14 @@ describe('Test users API validators', function () { await makePutBodyRequest({ url: server.url, path: path + 'me', token: 'super token', fields, statusCodeExpected: 401 }) }) + it('Should fail with a too long description', async function () { + const fields = { + description: 'super'.repeat(60) + } + + await makePutBodyRequest({ url: server.url, path: path + 'me', token: userAccessToken, fields }) + }) + it('Should succeed with the correct params', async function () { const fields = { password: 'my super password', diff --git a/server/tests/api/check-params/video-channels.ts b/server/tests/api/check-params/video-channels.ts index d073e28f0..43c5462ee 100644 --- a/server/tests/api/check-params/video-channels.ts +++ b/server/tests/api/check-params/video-channels.ts @@ -62,7 +62,8 @@ describe('Test videos API validator', function () { describe('When adding a video channel', function () { const baseCorrectParams = { name: 'hello', - description: 'super description' + description: 'super description', + support: 'super support text' } it('Should fail with a non authenticated user', async function () { @@ -89,13 +90,18 @@ describe('Test videos API validator', function () { await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) }) + it('Should fail with a long support text', async function () { + const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(70) }) + await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields }) + }) + it('Should succeed with the correct parameters', async function () { await makePostBodyRequest({ url: server.url, path, token: server.accessToken, fields: baseCorrectParams, - statusCodeExpected: 204 + statusCodeExpected: 200 }) }) }) @@ -143,6 +149,11 @@ describe('Test videos API validator', function () { await makePutBodyRequest({ url: server.url, path: path + '/' + videoChannelId, token: server.accessToken, fields }) }) + it('Should fail with a long support text', async function () { + const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(70) }) + await makePutBodyRequest({ url: server.url, path: path + '/' + videoChannelId, token: server.accessToken, fields }) + }) + it('Should succeed with the correct parameters', async function () { await makePutBodyRequest({ url: server.url, diff --git a/server/tests/api/check-params/videos.ts b/server/tests/api/check-params/videos.ts index aa30b721b..1d5c8543d 100644 --- a/server/tests/api/check-params/videos.ts +++ b/server/tests/api/check-params/videos.ts @@ -102,6 +102,7 @@ describe('Test videos API validator', function () { nsfw: false, commentsEnabled: true, description: 'my super description', + support: 'my super support text', tags: [ 'tag1', 'tag2' ], privacy: VideoPrivacy.PUBLIC, channelId @@ -178,7 +179,14 @@ describe('Test videos API validator', function () { }) it('Should fail with a long description', async function () { - const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(1500) }) + const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) + const attaches = baseCorrectAttaches + + await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) + }) + + it('Should fail with a long support text', async function () { + const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(70) }) const attaches = baseCorrectAttaches await makeUploadRequest({ url: server.url, path: path + '/upload', token: server.accessToken, fields, attaches }) @@ -417,7 +425,13 @@ describe('Test videos API validator', function () { }) it('Should fail with a long description', async function () { - const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(1500) }) + const fields = immutableAssign(baseCorrectParams, { description: 'super'.repeat(2500) }) + + await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) + }) + + it('Should fail with a long support text', async function () { + const fields = immutableAssign(baseCorrectParams, { support: 'super'.repeat(70) }) await makePutBodyRequest({ url: server.url, path: path + videoId, token: server.accessToken, fields }) }) diff --git a/server/tests/api/server/follows.ts b/server/tests/api/server/follows.ts index 46ad4879e..19b843861 100644 --- a/server/tests/api/server/follows.ts +++ b/server/tests/api/server/follows.ts @@ -280,6 +280,7 @@ describe('Test follows', function () { language: 3, nsfw: true, description: 'my super description', + support: 'my super support text', host: 'localhost:9003', account: 'root', isLocal, diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts index 4cedeb89e..84153b097 100644 --- a/server/tests/api/server/handle-down.ts +++ b/server/tests/api/server/handle-down.ts @@ -36,6 +36,7 @@ describe('Test handle downs', function () { nsfw: true, privacy: VideoPrivacy.PUBLIC, description: 'my super description for server 1', + support: 'my super support text for server 1', tags: [ 'tag1p1', 'tag2p1' ], fixture: 'video_short1.webm' } @@ -51,6 +52,7 @@ describe('Test handle downs', function () { language: 9, nsfw: true, description: 'my super description for server 1', + support: 'my super support text for server 1', host: 'localhost:9001', account: 'root', isLocal: false, diff --git a/server/tests/api/users/users-multiple-servers.ts b/server/tests/api/users/users-multiple-servers.ts index 3c4eaff14..bb458f7a5 100644 --- a/server/tests/api/users/users-multiple-servers.ts +++ b/server/tests/api/users/users-multiple-servers.ts @@ -3,7 +3,10 @@ import * as chai from 'chai' import 'mocha' import { Account } from '../../../../shared/models/actors' -import { checkVideoFilesWereRemoved, createUser, doubleFollow, flushAndRunMultipleServers, removeUser, userLogin, wait } from '../../utils' +import { + checkVideoFilesWereRemoved, createUser, doubleFollow, flushAndRunMultipleServers, removeUser, updateMyUser, userLogin, + wait +} from '../../utils' import { flushTests, getMyUserInformation, killallServers, ServerInfo, testImage, updateMyAvatar, uploadVideo } from '../../utils/index' import { checkActorFilesWereRemoved, getAccount, getAccountsList } from '../../utils/users/accounts' import { setAccessTokensToServers } from '../../utils/users/login' @@ -51,6 +54,22 @@ describe('Test users with multiple servers', function () { await wait(5000) }) + it('Should be able to update my description', async function () { + this.timeout(10000) + + await updateMyUser({ + url: servers[0].url, + accessToken: servers[0].accessToken, + description: 'my super description updated' + }) + + const res = await getMyUserInformation(servers[0].url, servers[0].accessToken) + user = res.body + expect(user.account.description).to.equal('my super description updated') + + await wait(5000) + }) + it('Should be able to update my avatar', async function () { this.timeout(10000) @@ -70,7 +89,7 @@ describe('Test users with multiple servers', function () { await wait(5000) }) - it('Should have updated my avatar on other servers too', async function () { + it('Should have updated my avatar and my description on other servers too', async function () { for (const server of servers) { const resAccounts = await getAccountsList(server.url, '-createdAt') @@ -81,6 +100,7 @@ describe('Test users with multiple servers', function () { const rootServer1Get = resAccount.body as Account expect(rootServer1Get.name).to.equal('root') expect(rootServer1Get.host).to.equal('localhost:9001') + expect(rootServer1Get.description).to.equal('my super description updated') await testImage(server.url, 'avatar2-resized', rootServer1Get.avatar.path, '.png') } diff --git a/server/tests/api/users/users.ts b/server/tests/api/users/users.ts index ac167d4f9..c650a74f5 100644 --- a/server/tests/api/users/users.ts +++ b/server/tests/api/users/users.ts @@ -172,6 +172,7 @@ describe('Test users', function () { expect(user.videoQuota).to.equal(2 * 1024 * 1024) expect(user.roleLabel).to.equal('User') expect(user.id).to.be.a('number') + expect(user.account.description).to.be.null }) it('Should be able to upload a video with this user', async function () { @@ -315,6 +316,7 @@ describe('Test users', function () { expect(user.displayNSFW).to.be.ok expect(user.videoQuota).to.equal(2 * 1024 * 1024) expect(user.id).to.be.a('number') + expect(user.account.description).to.be.null }) it('Should be able to change the autoPlayVideo attribute', async function () { @@ -345,6 +347,7 @@ describe('Test users', function () { expect(user.displayNSFW).to.be.ok expect(user.videoQuota).to.equal(2 * 1024 * 1024) expect(user.id).to.be.a('number') + expect(user.account.description).to.be.null }) it('Should be able to update my avatar', async function () { @@ -362,6 +365,24 @@ describe('Test users', function () { await testImage(server.url, 'avatar-resized', user.account.avatar.path, '.png') }) + it('Should be able to update my description', async function () { + await updateMyUser({ + url: server.url, + accessToken: accessTokenUser, + description: 'my super description updated' + }) + + const res = await getMyUserInformation(server.url, accessTokenUser) + const user = res.body + + expect(user.username).to.equal('user_1') + expect(user.email).to.equal('updated@example.com') + expect(user.displayNSFW).to.be.ok + expect(user.videoQuota).to.equal(2 * 1024 * 1024) + expect(user.id).to.be.a('number') + expect(user.account.description).to.equal('my super description updated') + }) + it('Should be able to update another user', async function () { await updateUser({ url: server.url, diff --git a/server/tests/api/videos/multiple-servers.ts b/server/tests/api/videos/multiple-servers.ts index 85d158d61..c82ac1348 100644 --- a/server/tests/api/videos/multiple-servers.ts +++ b/server/tests/api/videos/multiple-servers.ts @@ -70,6 +70,7 @@ describe('Test multiple servers', function () { language: 9, nsfw: true, description: 'my super description for server 1', + support: 'my super support text for server 1', tags: [ 'tag1p1', 'tag2p1' ], channelId: videoChannelId, fixture: 'video_short1.webm' @@ -88,6 +89,7 @@ describe('Test multiple servers', function () { language: 9, nsfw: true, description: 'my super description for server 1', + support: 'my super support text for server 1', host: 'localhost:9001', account: 'root', isLocal, @@ -136,6 +138,7 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 2', + support: 'my super support text for server 2', tags: [ 'tag1p2', 'tag2p2', 'tag3p2' ], fixture: 'video_short2.webm', thumbnailfile: 'thumbnail.jpg', @@ -156,6 +159,7 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 2', + support: 'my super support text for server 2', host: 'localhost:9002', account: 'user1', isLocal, @@ -211,6 +215,7 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 3', + support: 'my super support text for server 3', tags: [ 'tag1p3' ], fixture: 'video_short3.webm' } @@ -223,6 +228,7 @@ describe('Test multiple servers', function () { language: 12, nsfw: false, description: 'my super description for server 3-2', + support: 'my super support text for server 3-2', tags: [ 'tag2p3', 'tag3p3', 'tag4p3' ], fixture: 'video_short.webm' } @@ -257,6 +263,7 @@ describe('Test multiple servers', function () { language: 11, nsfw: true, description: 'my super description for server 3', + support: 'my super support text for server 3', host: 'localhost:9003', account: 'root', isLocal, @@ -286,6 +293,7 @@ describe('Test multiple servers', function () { language: 12, nsfw: false, description: 'my super description for server 3-2', + support: 'my super support text for server 3-2', host: 'localhost:9003', account: 'root', commentsEnabled: true, @@ -525,6 +533,7 @@ describe('Test multiple servers', function () { language: 13, nsfw: true, description: 'my super description updated', + support: 'my super support text updated', tags: [ 'tag_up_1', 'tag_up_2' ], thumbnailfile: 'thumbnail.jpg', previewfile: 'preview.jpg' @@ -553,6 +562,7 @@ describe('Test multiple servers', function () { language: 13, nsfw: true, description: 'my super description updated', + support: 'my super support text updated', host: 'localhost:9003', account: 'root', isLocal, @@ -841,6 +851,7 @@ describe('Test multiple servers', function () { language: null, nsfw: false, description: null, + support: null, host: 'localhost:9002', account: 'root', isLocal, diff --git a/server/tests/api/videos/single-server.ts b/server/tests/api/videos/single-server.ts index 8f55075fb..83b6a0e9a 100644 --- a/server/tests/api/videos/single-server.ts +++ b/server/tests/api/videos/single-server.ts @@ -26,6 +26,7 @@ describe('Test a single server', function () { language: 3, nsfw: true, description: 'my super description', + support: 'my super support text', host: 'localhost:9001', account: 'root', isLocal: true, @@ -54,6 +55,7 @@ describe('Test a single server', function () { language: 5, nsfw: false, description: 'my super description updated', + support: 'my super support text updated', host: 'localhost:9001', account: 'root', isLocal: true, diff --git a/server/tests/api/videos/video-channels.ts b/server/tests/api/videos/video-channels.ts index 25b7ad6ab..b9c9bbf3c 100644 --- a/server/tests/api/videos/video-channels.ts +++ b/server/tests/api/videos/video-channels.ts @@ -1,27 +1,27 @@ /* tslint:disable:no-unused-expression */ -import 'mocha' import * as chai from 'chai' -const expect = chai.expect - +import 'mocha' +import { User } from '../../../../shared/index' +import { doubleFollow, flushAndRunMultipleServers, uploadVideo, wait } from '../../utils' import { - ServerInfo, + addVideoChannel, + deleteVideoChannel, flushTests, - runServer, - setAccessTokensToServers, - killallServers, + getAccountVideoChannelsList, getMyUserInformation, + getVideoChannel, getVideoChannelsList, - addVideoChannel, - getAccountVideoChannelsList, - updateVideoChannel, - deleteVideoChannel, - getVideoChannel + killallServers, + ServerInfo, + setAccessTokensToServers, + updateVideoChannel } from '../../utils/index' -import { User } from '../../../../shared/index' -describe('Test a video channels', function () { - let server: ServerInfo +const expect = chai.expect + +describe('Test video channels', function () { + let servers: ServerInfo[] let userInfo: User let videoChannelId: number @@ -30,29 +30,41 @@ describe('Test a video channels', function () { await flushTests() - server = await runServer(1) + servers = await flushAndRunMultipleServers(2) + + await setAccessTokensToServers(servers) + await doubleFollow(servers[0], servers[1]) - await setAccessTokensToServers([ server ]) + await wait(5000) }) it('Should have one video channel (created with root)', async () => { - const res = await getVideoChannelsList(server.url, 0, 2) + const res = await getVideoChannelsList(servers[0].url, 0, 2) expect(res.body.total).to.equal(1) expect(res.body.data).to.be.an('array') expect(res.body.data).to.have.lengthOf(1) }) - it('Should create another video channel', async () => { + it('Should create another video channel', async function () { + this.timeout(10000) + const videoChannel = { name: 'second video channel', - description: 'super video channel description' + description: 'super video channel description', + support: 'super video channel support text' } - await addVideoChannel(server.url, server.accessToken, videoChannel) + const res = await addVideoChannel(servers[0].url, servers[0].accessToken, videoChannel) + videoChannelId = res.body.videoChannel.id + + // The channel is 1 is propagated to servers 2 + await uploadVideo(servers[0].url, servers[0].accessToken, { channelId: videoChannelId }) + + await wait(3000) }) it('Should have two video channels when getting my information', async () => { - const res = await getMyUserInformation(server.url, server.accessToken) + const res = await getMyUserInformation(servers[0].url, servers[0].accessToken) userInfo = res.body expect(userInfo.videoChannels).to.be.an('array') @@ -62,11 +74,11 @@ describe('Test a video channels', function () { expect(videoChannels[0].displayName).to.equal('Default root channel') expect(videoChannels[1].displayName).to.equal('second video channel') expect(videoChannels[1].description).to.equal('super video channel description') + expect(videoChannels[1].support).to.equal('super video channel support text') }) - it('Should have two video channels when getting account channels', async () => { - const res = await getAccountVideoChannelsList(server.url, userInfo.account.uuid) - + it('Should have two video channels when getting account channels on server 1', async function () { + const res = await getAccountVideoChannelsList(servers[0].url, userInfo.account.uuid) expect(res.body.total).to.equal(2) expect(res.body.data).to.be.an('array') expect(res.body.data).to.have.lengthOf(2) @@ -75,12 +87,23 @@ describe('Test a video channels', function () { expect(videoChannels[0].displayName).to.equal('Default root channel') expect(videoChannels[1].displayName).to.equal('second video channel') expect(videoChannels[1].description).to.equal('super video channel description') + expect(videoChannels[1].support).to.equal('super video channel support text') + }) + + it('Should have one video channel when getting account channels on server 2', async function () { + const res = await getAccountVideoChannelsList(servers[1].url, userInfo.account.uuid) + expect(res.body.total).to.equal(1) + expect(res.body.data).to.be.an('array') + expect(res.body.data).to.have.lengthOf(1) - videoChannelId = videoChannels[1].id + const videoChannels = res.body.data + expect(videoChannels[0].displayName).to.equal('second video channel') + expect(videoChannels[0].description).to.equal('super video channel description') + expect(videoChannels[0].support).to.equal('super video channel support text') }) - it('Should list video channels', async () => { - const res = await getVideoChannelsList(server.url, 1, 1, '-name') + it('Should list video channels', async function () { + const res = await getVideoChannelsList(servers[0].url, 1, 1, '-name') expect(res.body.total).to.equal(2) expect(res.body.data).to.be.an('array') @@ -88,39 +111,48 @@ describe('Test a video channels', function () { expect(res.body.data[0].displayName).to.equal('Default root channel') }) - it('Should update video channel', async () => { + it('Should update video channel', async function () { + this.timeout(5000) + const videoChannelAttributes = { name: 'video channel updated', - description: 'video channel description updated' + description: 'video channel description updated', + support: 'video channel support text updated' } - await updateVideoChannel(server.url, server.accessToken, videoChannelId, videoChannelAttributes) + await updateVideoChannel(servers[0].url, servers[0].accessToken, videoChannelId, videoChannelAttributes) + + await wait(3000) }) - it('Should have video channel updated', async () => { - const res = await getVideoChannelsList(server.url, 0, 1, '-name') + it('Should have video channel updated', async function () { + for (const server of servers) { + const res = await getVideoChannelsList(server.url, 0, 1, '-name') - expect(res.body.total).to.equal(2) - expect(res.body.data).to.be.an('array') - expect(res.body.data).to.have.lengthOf(1) - expect(res.body.data[0].displayName).to.equal('video channel updated') - expect(res.body.data[0].description).to.equal('video channel description updated') + expect(res.body.total).to.equal(2) + expect(res.body.data).to.be.an('array') + expect(res.body.data).to.have.lengthOf(1) + expect(res.body.data[0].displayName).to.equal('video channel updated') + expect(res.body.data[0].description).to.equal('video channel description updated') + expect(res.body.data[0].support).to.equal('video channel support text updated') + } }) - it('Should get video channel', async () => { - const res = await getVideoChannel(server.url, videoChannelId) + it('Should get video channel', async function () { + const res = await getVideoChannel(servers[0].url, videoChannelId) const videoChannel = res.body expect(videoChannel.displayName).to.equal('video channel updated') expect(videoChannel.description).to.equal('video channel description updated') + expect(videoChannel.support).to.equal('video channel support text updated') }) - it('Should delete video channel', async () => { - await deleteVideoChannel(server.url, server.accessToken, videoChannelId) + it('Should delete video channel', async function () { + await deleteVideoChannel(servers[0].url, servers[0].accessToken, videoChannelId) }) - it('Should have video channel deleted', async () => { - const res = await getVideoChannelsList(server.url, 0, 10) + it('Should have video channel deleted', async function () { + const res = await getVideoChannelsList(servers[0].url, 0, 10) expect(res.body.total).to.equal(1) expect(res.body.data).to.be.an('array') @@ -129,7 +161,7 @@ describe('Test a video channels', function () { }) after(async function () { - killallServers([ server ]) + killallServers(servers) // Keep the logs if the test failed if (this['ok']) { -- cgit v1.2.3