Skip to content

Commit

Permalink
Add check params account ratings tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Chocobozzz committed Apr 9, 2019
1 parent c100a61 commit 2283469
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 26 deletions.
10 changes: 5 additions & 5 deletions server/controllers/api/accounts.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
import * as express from 'express'
import { getFormattedObjects, getServerActor } from '../../helpers/utils'
import {
authenticate,
asyncMiddleware,
authenticate,
commonVideosFiltersValidator,
videoRatingValidator,
optionalAuthenticate,
paginationValidator,
setDefaultPagination,
setDefaultSort,
videoPlaylistsSortValidator,
videoRatesSortValidator
videoRatesSortValidator,
videoRatingValidator
} from '../../middlewares'
import {
accountNameWithHostGetValidator,
accountsSortValidator,
videosSortValidator,
ensureAuthUserOwnsAccountValidator
ensureAuthUserOwnsAccountValidator,
videosSortValidator
} from '../../middlewares/validators'
import { AccountModel } from '../../models/account/account'
import { AccountVideoRateModel } from '../../models/account/account-video-rate'
Expand Down
1 change: 0 additions & 1 deletion server/middlewares/validators/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ import { logger } from '../../helpers/logger'
import { isSignupAllowed, isSignupAllowedForCurrentIP } from '../../helpers/signup'
import { Redis } from '../../lib/redis'
import { UserModel } from '../../models/account/user'
import { AccountModel } from '../../models/account/account'
import { areValidationErrors } from './utils'
import { ActorModel } from '../../models/activitypub/actor'

Expand Down
2 changes: 1 addition & 1 deletion server/middlewares/validators/videos/video-rates.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as express from 'express'
import 'express-validator'
import { body, param, query } from 'express-validator/check'
import { isIdOrUUIDValid, isIdValid } from '../../../helpers/custom-validators/misc'
import { isIdOrUUIDValid } from '../../../helpers/custom-validators/misc'
import { isRatingValid } from '../../../helpers/custom-validators/video-rates'
import { doesVideoExist, isVideoRatingTypeValid } from '../../../helpers/custom-validators/videos'
import { logger } from '../../../helpers/logger'
Expand Down
32 changes: 32 additions & 0 deletions server/tests/api/check-params/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -538,6 +538,38 @@ describe('Test users API validators', function () {
})
})

describe('When retrieving my global ratings', function () {
const path = '/api/v1/accounts/user1/ratings'

it('Should fail with a bad start pagination', async function () {
await checkBadStartPagination(server.url, path, userAccessToken)
})

it('Should fail with a bad count pagination', async function () {
await checkBadCountPagination(server.url, path, userAccessToken)
})

it('Should fail with an incorrect sort', async function () {
await checkBadSortPagination(server.url, path, userAccessToken)
})

it('Should fail with a unauthenticated user', async function () {
await makeGetRequest({ url: server.url, path, statusCodeExpected: 401 })
})

it('Should fail with a another user', async function () {
await makeGetRequest({ url: server.url, path, token: server.accessToken, statusCodeExpected: 403 })
})

it('Should fail with a bad type', async function () {
await makeGetRequest({ url: server.url, path, token: userAccessToken, query: { rating: 'toto ' }, statusCodeExpected: 400 })
})

it('Should succeed with the correct params', async function () {
await makeGetRequest({ url: server.url, path, token: userAccessToken, statusCodeExpected: 200 })
})
})

describe('When blocking/unblocking/removing user', function () {
it('Should fail with an incorrect id', async function () {
await removeUser(server.url, 'blabla', server.accessToken, 400)
Expand Down
32 changes: 14 additions & 18 deletions server/tests/api/users/users.ts
Original file line number Diff line number Diff line change
Expand Up @@ -140,31 +140,27 @@ describe('Test users', function () {

it('Should retrieve ratings list', async function () {
await rateVideo(server.url, accessToken, videoId, 'like')
const res = await getAccountRatings(server.url, server.user.username, server.accessToken, 200)

const res = await getAccountRatings(server.url, server.user.username, server.accessToken, null, 200)
const ratings = res.body

expect(ratings.total).to.equal(1)
expect(ratings.data[0].video.id).to.equal(videoId)
expect(ratings.data[0].rating).to.equal('like')
})

it('Should retrieve ratings list by rating type', async function () {
await rateVideo(server.url, accessToken, videoId, 'like')
let res = await getAccountRatings(server.url, server.user.username, server.accessToken, 200, { rating: 'like' })
let ratings = res.body
expect(ratings.data.length).to.equal(1)
res = await getAccountRatings(server.url, server.user.username, server.accessToken, 200, { rating: 'dislike' })
ratings = res.body
expect(ratings.data.length).to.equal(0)
await getAccountRatings(server.url, server.user.username, server.accessToken, 400, { rating: 'invalid' })
})

it('Should not access ratings list if not logged with correct user', async function () {
const user = { username: 'anuragh', password: 'passbyme' }
const resUser = await createUser(server.url, server.accessToken, user.username, user.password)
const userId = resUser.body.user.id
const userAccessToken = await userLogin(server, user)
await getAccountRatings(server.url, server.user.username, userAccessToken, 403)
await removeUser(server.url, userId, server.accessToken)
{
const res = await getAccountRatings(server.url, server.user.username, server.accessToken, 'like')
const ratings = res.body
expect(ratings.data.length).to.equal(1)
}

{
const res = await getAccountRatings(server.url, server.user.username, server.accessToken, 'dislike')
const ratings = res.body
expect(ratings.data.length).to.equal(0)
}
})

it('Should not be able to remove the video with an incorrect token', async function () {
Expand Down
5 changes: 4 additions & 1 deletion shared/utils/users/accounts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { join } from 'path'
import { Account } from '../../models/actors'
import { root } from '../miscs/miscs'
import { makeGetRequest } from '../requests/requests'
import { VideoRateType } from '../../models/videos'

function getAccountsList (url: string, sort = '-createdAt', statusCodeExpected = 200) {
const path = '/api/v1/accounts'
Expand Down Expand Up @@ -54,9 +55,11 @@ async function checkActorFilesWereRemoved (actorUUID: string, serverNumber: numb
}
}

function getAccountRatings (url: string, accountName: string, accessToken: string, statusCodeExpected = 200, query = {}) {
function getAccountRatings (url: string, accountName: string, accessToken: string, rating?: VideoRateType, statusCodeExpected = 200) {
const path = '/api/v1/accounts/' + accountName + '/ratings'

const query = rating ? { rating } : {}

return request(url)
.get(path)
.query(query)
Expand Down

0 comments on commit 2283469

Please sign in to comment.