import 'mocha'
import * as chai from 'chai'
-import { buildUUID } from '@server/helpers/uuid'
import {
CheckerBaseParams,
checkMyVideoImportIsFinished,
checkNewActorFollow,
checkNewVideoFromSubscription,
+ checkVideoEditionIsFinished,
checkVideoIsPublished,
- cleanupTests,
FIXTURE_URLS,
MockSmtpServer,
- PeerTubeServer,
prepareNotificationsTest,
- uploadRandomVideoOnServers,
- wait,
- waitJobs
-} from '@shared/extra-utils'
-import { UserNotification, UserNotificationType, VideoPrivacy } from '@shared/models'
+ uploadRandomVideoOnServers
+} from '@server/tests/shared'
+import { wait } from '@shared/core-utils'
+import { buildUUID } from '@shared/extra-utils'
+import { UserNotification, UserNotificationType, VideoEditorTask, VideoPrivacy } from '@shared/models'
+import { cleanupTests, PeerTubeServer, waitJobs } from '@shared/server-commands'
const expect = chai.expect
describe('Test user notifications', function () {
let servers: PeerTubeServer[] = []
let userAccessToken: string
+
let userNotifications: UserNotification[] = []
let adminNotifications: UserNotification[] = []
let adminNotificationsServer2: UserNotification[] = []
let emails: object[] = []
+
let channelId: number
before(async function () {
await uploadRandomVideoOnServers(servers, 1)
- const notification = await servers[0].notifications.getLastest({ token: userAccessToken })
+ const notification = await servers[0].notifications.getLatest({ token: userAccessToken })
expect(notification).to.be.undefined
expect(emails).to.have.lengthOf(0)
})
it('Should not send a notification before the video is published', async function () {
- this.timeout(50000)
+ this.timeout(150000)
const updateAt = new Date(new Date().getTime() + 1000000)
})
it('Should not send a notification if the wait transcoding is false', async function () {
- this.timeout(50000)
+ this.timeout(100_000)
await uploadRandomVideoOnServers(servers, 2, { waitTranscoding: false })
await waitJobs(servers)
- const notification = await servers[0].notifications.getLastest({ token: userAccessToken })
+ const notification = await servers[0].notifications.getLatest({ token: userAccessToken })
if (notification) {
expect(notification.type).to.not.equal(UserNotificationType.MY_VIDEO_PUBLISHED)
}
})
it('Should send a notification when an imported video is transcoded', async function () {
- this.timeout(50000)
+ this.timeout(120000)
const name = 'video import ' + buildUUID()
})
})
+ describe('Video editor', function () {
+ let baseParams: CheckerBaseParams
+
+ before(() => {
+ baseParams = {
+ server: servers[1],
+ emails,
+ socketNotifications: adminNotificationsServer2,
+ token: servers[1].accessToken
+ }
+ })
+
+ it('Should send a notification after editor edition', async function () {
+ this.timeout(240000)
+
+ const { name, shortUUID, id } = await uploadRandomVideoOnServers(servers, 2, { waitTranscoding: true })
+
+ await waitJobs(servers)
+ await checkVideoIsPublished({ ...baseParams, videoName: name, shortUUID, checkType: 'presence' })
+
+ const tasks: VideoEditorTask[] = [
+ {
+ name: 'cut',
+ options: {
+ start: 0,
+ end: 1
+ }
+ }
+ ]
+ await servers[1].videoEditor.createEditionTasks({ videoId: id, tasks })
+ await waitJobs(servers)
+
+ await checkVideoEditionIsFinished({ ...baseParams, videoName: name, shortUUID, checkType: 'presence' })
+ })
+ })
+
describe('My video is imported', function () {
let baseParams: CheckerBaseParams