From 566c125d6eee3bd907404523d94e1e0b5e403a46 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 11 Dec 2019 14:14:01 +0100 Subject: Serve audit logs to client --- server/tests/api/server/logs.ts | 145 ++++++++++++++++++++++++++-------------- 1 file changed, 96 insertions(+), 49 deletions(-) (limited to 'server/tests') diff --git a/server/tests/api/server/logs.ts b/server/tests/api/server/logs.ts index 68f442199..d3c877408 100644 --- a/server/tests/api/server/logs.ts +++ b/server/tests/api/server/logs.ts @@ -2,17 +2,10 @@ import * as chai from 'chai' import 'mocha' -import { - flushTests, - killallServers, - flushAndRunServer, - ServerInfo, - setAccessTokensToServers, - cleanupTests -} from '../../../../shared/extra-utils/index' +import { cleanupTests, flushAndRunServer, ServerInfo, setAccessTokensToServers } from '../../../../shared/extra-utils/index' import { waitJobs } from '../../../../shared/extra-utils/server/jobs' import { uploadVideo } from '../../../../shared/extra-utils/videos/videos' -import { getLogs } from '../../../../shared/extra-utils/logs/logs' +import { getAuditLogs, getLogs } from '../../../../shared/extra-utils/logs/logs' const expect = chai.expect @@ -26,69 +19,123 @@ describe('Test logs', function () { await setAccessTokensToServers([ server ]) }) - it('Should get logs with a start date', async function () { - this.timeout(10000) + describe('With the standard log file', function () { + it('Should get logs with a start date', async function () { + this.timeout(10000) - await uploadVideo(server.url, server.accessToken, { name: 'video 1' }) - await waitJobs([ server ]) + await uploadVideo(server.url, server.accessToken, { name: 'video 1' }) + await waitJobs([ server ]) - const now = new Date() + const now = new Date() - await uploadVideo(server.url, server.accessToken, { name: 'video 2' }) - await waitJobs([ server ]) + await uploadVideo(server.url, server.accessToken, { name: 'video 2' }) + await waitJobs([ server ]) - const res = await getLogs(server.url, server.accessToken, now) - const logsString = JSON.stringify(res.body) + const res = await getLogs(server.url, server.accessToken, now) + const logsString = JSON.stringify(res.body) - expect(logsString.includes('video 1')).to.be.false - expect(logsString.includes('video 2')).to.be.true - }) + expect(logsString.includes('video 1')).to.be.false + expect(logsString.includes('video 2')).to.be.true + }) + + it('Should get logs with an end date', async function () { + this.timeout(20000) + + await uploadVideo(server.url, server.accessToken, { name: 'video 3' }) + await waitJobs([ server ]) + + const now1 = new Date() + + await uploadVideo(server.url, server.accessToken, { name: 'video 4' }) + await waitJobs([ server ]) + + const now2 = new Date() + + await uploadVideo(server.url, server.accessToken, { name: 'video 5' }) + await waitJobs([ server ]) + + const res = await getLogs(server.url, server.accessToken, now1, now2) + const logsString = JSON.stringify(res.body) - it('Should get logs with an end date', async function () { - this.timeout(20000) + expect(logsString.includes('video 3')).to.be.false + expect(logsString.includes('video 4')).to.be.true + expect(logsString.includes('video 5')).to.be.false + }) - await uploadVideo(server.url, server.accessToken, { name: 'video 3' }) - await waitJobs([ server ]) + it('Should get filter by level', async function () { + this.timeout(10000) - const now1 = new Date() + const now = new Date() - await uploadVideo(server.url, server.accessToken, { name: 'video 4' }) - await waitJobs([ server ]) + await uploadVideo(server.url, server.accessToken, { name: 'video 6' }) + await waitJobs([ server ]) - const now2 = new Date() + { + const res = await getLogs(server.url, server.accessToken, now, undefined, 'info') + const logsString = JSON.stringify(res.body) - await uploadVideo(server.url, server.accessToken, { name: 'video 5' }) - await waitJobs([ server ]) + expect(logsString.includes('video 6')).to.be.true + } - const res = await getLogs(server.url, server.accessToken, now1, now2) - const logsString = JSON.stringify(res.body) + { + const res = await getLogs(server.url, server.accessToken, now, undefined, 'warn') + const logsString = JSON.stringify(res.body) - expect(logsString.includes('video 3')).to.be.false - expect(logsString.includes('video 4')).to.be.true - expect(logsString.includes('video 5')).to.be.false + expect(logsString.includes('video 6')).to.be.false + } + }) }) - it('Should get filter by level', async function () { - this.timeout(10000) + describe('With the audit log', function () { + it('Should get logs with a start date', async function () { + this.timeout(10000) - const now = new Date() + await uploadVideo(server.url, server.accessToken, { name: 'video 7' }) + await waitJobs([ server ]) - await uploadVideo(server.url, server.accessToken, { name: 'video 6' }) - await waitJobs([ server ]) + const now = new Date() - { - const res = await getLogs(server.url, server.accessToken, now, undefined, 'info') + await uploadVideo(server.url, server.accessToken, { name: 'video 8' }) + await waitJobs([ server ]) + + const res = await getAuditLogs(server.url, server.accessToken, now) const logsString = JSON.stringify(res.body) - expect(logsString.includes('video 6')).to.be.true - } + expect(logsString.includes('video 7')).to.be.false + expect(logsString.includes('video 8')).to.be.true + + expect(res.body).to.have.lengthOf(1) + + const item = res.body[0] + + const message = JSON.parse(item.message) + expect(message.domain).to.equal('videos') + expect(message.action).to.equal('create') + }) + + it('Should get logs with an end date', async function () { + this.timeout(20000) + + await uploadVideo(server.url, server.accessToken, { name: 'video 9' }) + await waitJobs([ server ]) + + const now1 = new Date() + + await uploadVideo(server.url, server.accessToken, { name: 'video 10' }) + await waitJobs([ server ]) + + const now2 = new Date() + + await uploadVideo(server.url, server.accessToken, { name: 'video 11' }) + await waitJobs([ server ]) - { - const res = await getLogs(server.url, server.accessToken, now, undefined, 'warn') + const res = await getAuditLogs(server.url, server.accessToken, now1, now2) const logsString = JSON.stringify(res.body) - expect(logsString.includes('video 6')).to.be.false - } + expect(logsString.includes('video 9')).to.be.false + expect(logsString.includes('video 10')).to.be.true + expect(logsString.includes('video 11')).to.be.false + }) }) after(async function () { -- cgit v1.2.3