Fix comments SQL pagination

pull/5544/head
Chocobozzz 2023-01-10 09:16:33 +01:00
parent 57f255bebc
commit a8749f7c3b
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 23 additions and 13 deletions

View File

@ -87,8 +87,7 @@ export class VideoCommentListQueryBuilder extends AbstractRunQuery {
this.query = `${this.select} ` +
`FROM (${this.innerQuery}) AS "VideoCommentModel" ` +
`${this.joins} ` +
`${this.getOrder()} ` +
`${this.getLimit()}`
`${this.getOrder()}`
}
private buildInnerListQuery () {
@ -375,14 +374,6 @@ export class VideoCommentListQueryBuilder extends AbstractRunQuery {
return 'ORDER BY ' + orders.map(o => `"${o[0]}" ${o[1]}`).join(', ')
}
private getLimit () {
if (!this.options.count) return ''
this.replacements.limit = this.options.count
return `LIMIT :limit `
}
private getInnerLimit () {
if (!this.options.count) return ''

View File

@ -38,6 +38,6 @@ export class VideoCommentTableAttributes {
@Memoize()
getAvatarAttributes () {
return ActorImageModel.getSQLAttributes('Account->Actor->Avatars', 'Account.Actor.Avatars.id').join(', ')
return ActorImageModel.getSQLAttributes('Account->Actor->Avatars', 'Account.Actor.Avatars.').join(', ')
}
}

View File

@ -38,6 +38,8 @@ describe('Test video comments', function () {
await setDefaultAccountAvatar(server)
userAccessTokenServer1 = await server.users.generateUserAndToken('user1')
await setDefaultChannelAvatar(server, 'user1_channel')
await setDefaultAccountAvatar(server, userAccessTokenServer1)
command = server.comments
})
@ -240,9 +242,26 @@ describe('Test video comments', function () {
describe('All instance comments', function () {
it('Should list instance comments as admin', async function () {
const { data } = await command.listForAdmin({ start: 0, count: 1 })
{
const { data, total } = await command.listForAdmin({ start: 0, count: 1 })
expect(data[0].text).to.equal('my second answer to thread 4')
expect(total).to.equal(7)
expect(data).to.have.lengthOf(1)
expect(data[0].text).to.equal('my second answer to thread 4')
expect(data[0].account.name).to.equal('root')
expect(data[0].account.displayName).to.equal('root')
expect(data[0].account.avatars).to.have.lengthOf(2)
}
{
const { data, total } = await command.listForAdmin({ start: 1, count: 2 })
expect(total).to.equal(7)
expect(data).to.have.lengthOf(2)
expect(data[0].account.avatars).to.have.lengthOf(2)
expect(data[1].account.avatars).to.have.lengthOf(2)
}
})
it('Should filter instance comments by isLocal', async function () {