1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-03 01:39:37 +02:00
Peertube/packages/tests/src/api/notifications/caption-notifications.ts
2024-06-28 08:44:58 +02:00

81 lines
2.4 KiB
TypeScript

/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
import { UserNotification } from '@peertube/peertube-models'
import { PeerTubeServer, cleanupTests, waitJobs } from '@peertube/peertube-server-commands'
import { MockSmtpServer } from '@tests/shared/mock-servers/mock-email.js'
import {
CheckerBaseParams,
checkMyVideoTranscriptionGenerated,
prepareNotificationsTest
} from '@tests/shared/notifications.js'
import { join } from 'path'
describe('Test caption notifications', function () {
let servers: PeerTubeServer[] = []
let userNotifications: UserNotification[] = []
let emails: object[] = []
let userAccessToken: string
before(async function () {
this.timeout(120000)
const res = await prepareNotificationsTest(1)
emails = res.emails
userAccessToken = res.userAccessToken
servers = res.servers
userNotifications = res.userNotifications
})
describe('Transcription of my video generated is published', function () {
const language = { id: 'en', label: 'English' }
let baseParams: CheckerBaseParams
before(() => {
baseParams = {
server: servers[0],
emails,
socketNotifications: userNotifications,
token: userAccessToken
}
})
async function uploadAndWait () {
const { uuid } = await servers[0].videos.upload({
token: userAccessToken,
attributes: {
name: 'video',
fixture: join('transcription', 'videos', 'the_last_man_on_earth.mp4'),
language: undefined
}
})
await waitJobs(servers)
return servers[0].videos.get({ id: uuid })
}
it('Should not send a notification if transcription is not enabled', async function () {
this.timeout(50000)
const { name, shortUUID } = await uploadAndWait()
await checkMyVideoTranscriptionGenerated({ ...baseParams, videoName: name, shortUUID, language, checkType: 'absence' })
})
it('Should send a notification transcription is enabled', async function () {
this.timeout(240000)
await servers[0].config.enableTranscription()
const { name, shortUUID } = await uploadAndWait()
await checkMyVideoTranscriptionGenerated({ ...baseParams, videoName: name, shortUUID, language, checkType: 'presence' })
})
})
after(async function () {
MockSmtpServer.Instance.kill()
await cleanupTests(servers)
})
})