X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fshared%2Fnotifications.ts;h=ee15e2b098da2b2ac91ab4c59d06100173ca9400;hb=2a491182e483b97afb1b65c908b23cb48d591807;hp=cdc21fdc865284104600e0373eba591c0f316e7c;hpb=c3edc5b074aa4bb1861ed0a94d3713808e87170f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/shared/notifications.ts b/server/tests/shared/notifications.ts index cdc21fdc8..ee15e2b09 100644 --- a/server/tests/shared/notifications.ts +++ b/server/tests/shared/notifications.ts @@ -10,7 +10,15 @@ import { UserNotificationSettingValue, UserNotificationType } from '@shared/models' -import { createMultipleServers, doubleFollow, PeerTubeServer, setAccessTokensToServers } from '@shared/server-commands' +import { + createMultipleServers, + doubleFollow, + PeerTubeServer, + setAccessTokensToServers, + setDefaultAccountAvatar, + setDefaultChannelAvatar, + setDefaultVideoChannel +} from '@shared/server-commands' import { MockSmtpServer } from './mock-servers' type CheckerBaseParams = { @@ -40,6 +48,7 @@ function getAllNotificationsSettings (): UserNotificationSetting { abuseStateChange: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL, autoInstanceFollowing: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL, newPeerTubeVersion: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL, + myVideoStudioEditionFinished: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL, newPluginVersion: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL } } @@ -102,6 +111,34 @@ async function checkVideoIsPublished (options: CheckerBaseParams & { await checkNotification({ ...options, notificationChecker, emailNotificationFinder }) } +async function checkVideoStudioEditionIsFinished (options: CheckerBaseParams & { + videoName: string + shortUUID: string + checkType: CheckerType +}) { + const { videoName, shortUUID } = options + const notificationType = UserNotificationType.MY_VIDEO_STUDIO_EDITION_FINISHED + + function notificationChecker (notification: UserNotification, checkType: CheckerType) { + if (checkType === 'presence') { + expect(notification).to.not.be.undefined + expect(notification.type).to.equal(notificationType) + + checkVideo(notification.video, videoName, shortUUID) + checkActor(notification.video.channel) + } else { + expect(notification.video).to.satisfy(v => v === undefined || v.name !== videoName) + } + } + + function emailNotificationFinder (email: object) { + const text: string = email['text'] + return text.includes(shortUUID) && text.includes('Edition of your video') + } + + await checkNotification({ ...options, notificationChecker, emailNotificationFinder }) +} + async function checkMyVideoImportIsFinished (options: CheckerBaseParams & { videoName: string shortUUID: string @@ -148,7 +185,7 @@ async function checkUserRegistered (options: CheckerBaseParams & { expect(notification).to.not.be.undefined expect(notification.type).to.equal(notificationType) - checkActor(notification.account) + checkActor(notification.account, { withAvatar: false }) expect(notification.account.name).to.equal(username) } else { expect(notification).to.satisfy(n => n.type !== notificationType || n.account.name !== username) @@ -216,7 +253,7 @@ async function checkNewInstanceFollower (options: CheckerBaseParams & { expect(notification).to.not.be.undefined expect(notification.type).to.equal(notificationType) - checkActor(notification.actorFollow.follower) + checkActor(notification.actorFollow.follower, { withAvatar: false }) expect(notification.actorFollow.follower.name).to.equal('peertube') expect(notification.actorFollow.follower.host).to.equal(followerHost) @@ -251,7 +288,8 @@ async function checkAutoInstanceFollowing (options: CheckerBaseParams & { expect(notification.type).to.equal(notificationType) const following = notification.actorFollow.following - checkActor(following) + + checkActor(following, { withAvatar: false }) expect(following.name).to.equal('peertube') expect(following.host).to.equal(followingHost) @@ -646,6 +684,14 @@ async function prepareNotificationsTest (serversCount = 3, overrideConfigArg: an const servers = await createMultipleServers(serversCount, Object.assign(overrideConfig, overrideConfigArg)) await setAccessTokensToServers(servers) + await setDefaultVideoChannel(servers) + await setDefaultChannelAvatar(servers) + await setDefaultAccountAvatar(servers) + + if (servers[1]) { + await servers[1].config.enableStudio() + await servers[1].config.enableLive({ allowReplay: true, transcoding: false }) + } if (serversCount > 1) { await doubleFollow(servers[0], servers[1]) @@ -656,6 +702,9 @@ async function prepareNotificationsTest (serversCount = 3, overrideConfigArg: an const userAccessToken = await servers[0].login.getAccessToken(user) await servers[0].notifications.updateMySettings({ token: userAccessToken, settings: getAllNotificationsSettings() }) + await servers[0].users.updateMyAvatar({ token: userAccessToken, fixture: 'avatar.png' }) + await servers[0].channels.updateImage({ channelName: 'user_1_channel', token: userAccessToken, fixture: 'avatar.png', type: 'avatar' }) + await servers[0].notifications.updateMySettings({ settings: getAllNotificationsSettings() }) if (serversCount > 1) { @@ -715,7 +764,8 @@ export { checkNewCommentAbuseForModerators, checkNewAccountAbuseForModerators, checkNewPeerTubeVersion, - checkNewPluginVersion + checkNewPluginVersion, + checkVideoStudioEditionIsFinished } // --------------------------------------------------------------------------- @@ -730,7 +780,7 @@ async function checkNotification (options: CheckerBaseParams & { const check = options.check || { web: true, mail: true } if (check.web) { - const notification = await server.notifications.getLatest({ token: token }) + const notification = await server.notifications.getLatest({ token }) if (notification || checkType !== 'absence') { notificationChecker(notification, checkType) @@ -786,10 +836,18 @@ function checkVideo (video: any, videoName?: string, shortUUID?: string) { expect(video.id).to.be.a('number') } -function checkActor (actor: any) { +function checkActor (actor: any, options: { withAvatar?: boolean } = {}) { + const { withAvatar = true } = options + expect(actor.displayName).to.be.a('string') expect(actor.displayName).to.not.be.empty expect(actor.host).to.not.be.undefined + + if (withAvatar) { + expect(actor.avatars).to.be.an('array') + expect(actor.avatars).to.have.lengthOf(2) + expect(actor.avatars[0].path).to.exist.and.not.empty + } } function checkComment (comment: any, commentId: number, threadId: number) {