]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/plugins/plugin-helpers.ts
Add ability to remove a video from a plugin
[github/Chocobozzz/PeerTube.git] / server / tests / plugins / plugin-helpers.ts
index 05928273f2b94722f08d5fdf5edbb7e82798cf6e..dfe8ebe555d11c6addf2e2b10ebb3db915c1206c 100644 (file)
@@ -1,11 +1,16 @@
 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
-import * as chai from 'chai'
 import 'mocha'
 import { cleanupTests, flushAndRunServer, ServerInfo, waitUntilLog } from '../../../shared/extra-utils/server/servers'
-import { getPluginTestPath, installPlugin, setAccessTokensToServers } from '../../../shared/extra-utils'
-
-const expect = chai.expect
+import {
+  checkVideoFilesWereRemoved,
+  getPluginTestPath,
+  getVideo,
+  installPlugin,
+  setAccessTokensToServers,
+  uploadVideoAndGetId,
+  viewVideo
+} from '../../../shared/extra-utils'
 
 describe('Test plugin helpers', function () {
   let server: ServerInfo
@@ -32,6 +37,29 @@ describe('Test plugin helpers', function () {
     await waitUntilLog(server, `root email is admin${server.internalServerNumber}@example.com`, 1)
   })
 
+  it('Should remove a video after a view', async function () {
+    this.timeout(20000)
+
+    const videoUUID = (await uploadVideoAndGetId({ server: server, videoName: 'video1' })).uuid
+
+    // Should not throw -> video exists
+    await getVideo(server.url, videoUUID)
+    // Should delete the video
+    await viewVideo(server.url, videoUUID)
+
+    await waitUntilLog(server, 'Video deleted by plugin four.', 1)
+
+    try {
+      // Should throw because the video should have been deleted
+      await getVideo(server.url, videoUUID)
+      throw new Error('Video exists')
+    } catch (err) {
+      if (err.message.includes('exists')) throw err
+    }
+
+    await checkVideoFilesWereRemoved(videoUUID, server.internalServerNumber)
+  })
+
   after(async function () {
     await cleanupTests([ server ])
   })