return { videoDatabase, videoPublished }
})
- if (videoPublished) {
+ // don't notify prior to scheduled video update
+ if (videoPublished && !videoDatabase.ScheduleVideoUpdate) {
Notifier.Instance.notifyOnNewVideo(videoDatabase)
Notifier.Instance.notifyOnPendingVideoPublished(videoDatabase)
}
return { videoDatabase, videoPublished }
})
- if (isNewVideo) Notifier.Instance.notifyOnNewVideo(videoDatabase)
- if (videoPublished) Notifier.Instance.notifyOnPendingVideoPublished(videoDatabase)
+ // don't notify prior to scheduled video update
+ if (!videoDatabase.ScheduleVideoUpdate) {
+ if (isNewVideo) Notifier.Instance.notifyOnNewVideo(videoDatabase)
+ if (videoPublished) Notifier.Instance.notifyOnPendingVideoPublished(videoDatabase)
+ }
}
// ---------------------------------------------------------------------------
return { uuid: res.body.video.uuid, name }
}
-describe('Test users notifications', function () {
+describe.only('Test users notifications', function () {
let servers: ServerInfo[] = []
let userAccessToken: string
let userNotifications: UserNotification[] = []
})
it('Should not send notifications if the user does not follow the video publisher', async function () {
+ this.timeout(10000)
+
await uploadVideoByLocalAccount(servers)
const notification = await getLastNotification(servers[ 0 ].url, userAccessToken)
})
it('Should not send a notification if transcoding is not enabled', async function () {
+ this.timeout(10000)
+
const { name, uuid } = await uploadVideoByLocalAccount(servers)
await waitJobs(servers)
await wait(6000)
await checkVideoIsPublished(baseParams, name, uuid, 'presence')
})
+
+ it('Should not send a notification before the video is published', async function () {
+ this.timeout(20000)
+
+ let updateAt = new Date(new Date().getTime() + 100000)
+
+ const data = {
+ privacy: VideoPrivacy.PRIVATE,
+ scheduleUpdate: {
+ updateAt: updateAt.toISOString(),
+ privacy: VideoPrivacy.PUBLIC
+ }
+ }
+ const { name, uuid } = await uploadVideoByRemoteAccount(servers, data)
+
+ await wait(6000)
+ await checkVideoIsPublished(baseParams, name, uuid, 'absence')
+ })
})
describe('My video is imported', function () {
})
it('Should send a notification only to moderators when a user registers on the instance', async function () {
+ this.timeout(10000)
+
await registerUser(servers[0].url, 'user_45', 'password')
await waitJobs(servers)
})
it('Should notify when a local account is following one of our channel', async function () {
+ this.timeout(10000)
+
await addUserSubscription(servers[0].url, servers[0].accessToken, 'user_1@localhost:9001')
await waitJobs(servers)
})
it('Should notify when a remote account is following one of our channel', async function () {
+ this.timeout(10000)
+
await addUserSubscription(servers[1].url, servers[1].accessToken, 'user_1@localhost:9001')
await waitJobs(servers)
})
it('Should not have notifications', async function () {
+ this.timeout(10000)
+
await updateMyNotificationSettings(servers[0].url, userAccessToken, immutableAssign(allNotificationSettings, {
newVideoFromSubscription: UserNotificationSettingValue.NONE
}))
})
it('Should only have web notifications', async function () {
+ this.timeout(10000)
+
await updateMyNotificationSettings(servers[0].url, userAccessToken, immutableAssign(allNotificationSettings, {
newVideoFromSubscription: UserNotificationSettingValue.WEB
}))
})
it('Should only have mail notifications', async function () {
+ this.timeout(10000)
+
await updateMyNotificationSettings(servers[0].url, userAccessToken, immutableAssign(allNotificationSettings, {
newVideoFromSubscription: UserNotificationSettingValue.EMAIL
}))
})
it('Should have email and web notifications', async function () {
+ this.timeout(10000)
+
await updateMyNotificationSettings(servers[0].url, userAccessToken, immutableAssign(allNotificationSettings, {
newVideoFromSubscription: UserNotificationSettingValue.WEB | UserNotificationSettingValue.EMAIL
}))