+ before(async function () {
+ userToken = await servers[0].users.generateUserAndToken('user_43')
+
+ const body = await commands[0].report({ token: userToken, videoId: servers[0].store.videoCreated.id, reason: 'user 43 reason 1' })
+ abuseId = body.abuse.id
+ })
+
+ it('Should create some messages on the abuse', async function () {
+ await commands[0].addMessage({ token: userToken, abuseId, message: 'message 1' })
+ await commands[0].addMessage({ abuseId, message: 'message 2' })
+ await commands[0].addMessage({ abuseId, message: 'message 3' })
+ await commands[0].addMessage({ token: userToken, abuseId, message: 'message 4' })
+ })
+
+ it('Should have the correct messages count when listing abuses', async function () {
+ const results = await Promise.all([
+ commands[0].getAdminList({ start: 0, count: 50 }),
+ commands[0].getUserList({ token: userToken, start: 0, count: 50 })
+ ])
+
+ for (const body of results) {
+ const abuses = body.data
+ const abuse = abuses.find(a => a.id === abuseId)
+ expect(abuse.countMessages).to.equal(4)
+ }
+ })
+
+ it('Should correctly list messages of this abuse', async function () {
+ const results = await Promise.all([
+ commands[0].listMessages({ abuseId }),
+ commands[0].listMessages({ token: userToken, abuseId })
+ ])
+
+ for (const body of results) {
+ expect(body.total).to.equal(4)
+
+ const abuseMessages: AbuseMessage[] = body.data
+
+ expect(abuseMessages[0].message).to.equal('message 1')
+ expect(abuseMessages[0].byModerator).to.be.false
+ expect(abuseMessages[0].account.name).to.equal('user_43')
+
+ abuseMessageUserId = abuseMessages[0].id
+
+ expect(abuseMessages[1].message).to.equal('message 2')
+ expect(abuseMessages[1].byModerator).to.be.true
+ expect(abuseMessages[1].account.name).to.equal('root')
+
+ expect(abuseMessages[2].message).to.equal('message 3')
+ expect(abuseMessages[2].byModerator).to.be.true
+ expect(abuseMessages[2].account.name).to.equal('root')
+ abuseMessageModerationId = abuseMessages[2].id
+
+ expect(abuseMessages[3].message).to.equal('message 4')
+ expect(abuseMessages[3].byModerator).to.be.false
+ expect(abuseMessages[3].account.name).to.equal('user_43')
+ }
+ })
+
+ it('Should delete messages', async function () {
+ await commands[0].deleteMessage({ abuseId, messageId: abuseMessageModerationId })
+ await commands[0].deleteMessage({ token: userToken, abuseId, messageId: abuseMessageUserId })
+
+ const results = await Promise.all([
+ commands[0].listMessages({ abuseId }),
+ commands[0].listMessages({ token: userToken, abuseId })
+ ])
+
+ for (const body of results) {
+ expect(body.total).to.equal(2)
+
+ const abuseMessages: AbuseMessage[] = body.data
+ expect(abuseMessages[0].message).to.equal('message 2')
+ expect(abuseMessages[1].message).to.equal('message 4')
+ }