]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/tests/api/check-params/videos-common-filters.ts
Improve remote runner config UX
[github/Chocobozzz/PeerTube.git] / server / tests / api / check-params / videos-common-filters.ts
index f2b5bee8e1f67886c17930f5dffdfe2c9103394e..3e44e2f674a3930eed57bfeb93a597172724cd74 100644 (file)
@@ -1,6 +1,6 @@
 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
-import 'mocha'
+import { HttpStatusCode, UserRole, VideoInclude, VideoPrivacy } from '@shared/models'
 import {
   cleanupTests,
   createSingleServer,
@@ -8,8 +8,7 @@ import {
   PeerTubeServer,
   setAccessTokensToServers,
   setDefaultVideoChannel
-} from '@shared/extra-utils'
-import { HttpStatusCode, UserRole, VideoInclude, VideoPrivacy } from '@shared/models'
+} from '@shared/server-commands'
 
 describe('Test video filters validators', function () {
   let server: PeerTubeServer
@@ -43,7 +42,8 @@ describe('Test video filters validators', function () {
         '/api/v1/video-channels/root_channel/videos',
         '/api/v1/accounts/root/videos',
         '/api/v1/videos',
-        '/api/v1/search/videos'
+        '/api/v1/search/videos',
+        '/api/v1/users/me/subscriptions/videos'
       ]
 
       for (const path of paths) {
@@ -122,6 +122,8 @@ describe('Test video filters validators', function () {
       include?: VideoInclude
       privacyOneOf?: VideoPrivacy[]
       expectedStatus: HttpStatusCode
+      excludeAlreadyWatched?: boolean
+      unauthenticatedUser?: boolean
     }) {
       const paths = [
         '/api/v1/video-channels/root_channel/videos',
@@ -131,14 +133,19 @@ describe('Test video filters validators', function () {
       ]
 
       for (const path of paths) {
+        const token = options.unauthenticatedUser
+          ? undefined
+          : options.token || server.accessToken
+
         await makeGetRequest({
           url: server.url,
           path,
-          token: options.token || server.accessToken,
+          token,
           query: {
             isLocal: options.isLocal,
             privacyOneOf: options.privacyOneOf,
-            include: options.include
+            include: options.include,
+            excludeAlreadyWatched: options.excludeAlreadyWatched
           },
           expectedStatus: options.expectedStatus
         })
@@ -213,6 +220,14 @@ describe('Test video filters validators', function () {
         }
       })
     })
+
+    it('Should fail when trying to exclude already watched videos for an unlogged user', async function () {
+      await testEndpoints({ excludeAlreadyWatched: true, unauthenticatedUser: true, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    })
+
+    it('Should succeed when trying to exclude already watched videos for a logged user', async function () {
+      await testEndpoints({ token: userAccessToken, excludeAlreadyWatched: true, expectedStatus: HttpStatusCode.OK_200 })
+    })
   })
 
   after(async function () {