X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Ftests%2Fapi%2Fserver%2Flogs.ts;h=6b1eb776cf2f8d69c124d79471a3c425c6a9688e;hb=9129b7694d577322327ee79e9b9aa64deee92765;hp=68f4421993ed276852720bcfe79ca13233ffac8f;hpb=48f07b4a4091cb10dc4d179118e155f3a118dca8;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/tests/api/server/logs.ts b/server/tests/api/server/logs.ts index 68f442199..6b1eb776c 100644 --- a/server/tests/api/server/logs.ts +++ b/server/tests/api/server/logs.ts @@ -1,18 +1,19 @@ -/* tslint:disable:no-unused-expression */ +/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ -import * as chai from 'chai' import 'mocha' +import * as chai from 'chai' import { - flushTests, - killallServers, + cleanupTests, flushAndRunServer, + killallServers, + makePingRequest, + reRunServer, ServerInfo, - setAccessTokensToServers, - cleanupTests + setAccessTokensToServers } from '../../../../shared/extra-utils/index' +import { getAuditLogs, getLogs } from '../../../../shared/extra-utils/logs/logs' import { waitJobs } from '../../../../shared/extra-utils/server/jobs' import { uploadVideo } from '../../../../shared/extra-utils/videos/videos' -import { getLogs } from '../../../../shared/extra-utils/logs/logs' const expect = chai.expect @@ -26,69 +27,152 @@ 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 () { - await uploadVideo(server.url, server.accessToken, { name: 'video 1' }) - await waitJobs([ server ]) + 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 1' }) + await waitJobs([ server ]) - await uploadVideo(server.url, server.accessToken, { name: 'video 2' }) - await waitJobs([ server ]) + const now = new Date() - const res = await getLogs(server.url, server.accessToken, now) - const logsString = JSON.stringify(res.body) + await uploadVideo(server.url, server.accessToken, { name: 'video 2' }) + await waitJobs([ server ]) - expect(logsString.includes('video 1')).to.be.false - expect(logsString.includes('video 2')).to.be.true - }) + const res = await getLogs(server.url, server.accessToken, now) + const logsString = JSON.stringify(res.body) - it('Should get logs with an end date', async function () { - this.timeout(20000) + expect(logsString.includes('video 1')).to.be.false + expect(logsString.includes('video 2')).to.be.true + }) - await uploadVideo(server.url, server.accessToken, { name: 'video 3' }) - await waitJobs([ server ]) + it('Should get logs with an end date', async function () { + this.timeout(20000) - const now1 = new Date() + await uploadVideo(server.url, server.accessToken, { name: 'video 3' }) + await waitJobs([ server ]) - await uploadVideo(server.url, server.accessToken, { name: 'video 4' }) - await waitJobs([ server ]) + const now1 = new Date() - const now2 = new Date() + await uploadVideo(server.url, server.accessToken, { name: 'video 4' }) + await waitJobs([ server ]) - await uploadVideo(server.url, server.accessToken, { name: 'video 5' }) - await waitJobs([ server ]) + const now2 = new Date() - const res = await getLogs(server.url, server.accessToken, now1, now2) - const logsString = JSON.stringify(res.body) + await uploadVideo(server.url, server.accessToken, { name: 'video 5' }) + await waitJobs([ server ]) - expect(logsString.includes('video 3')).to.be.false - expect(logsString.includes('video 4')).to.be.true - expect(logsString.includes('video 5')).to.be.false - }) + const res = await getLogs(server.url, server.accessToken, now1, now2) + 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 + }) + + it('Should get filter by level', async function () { + this.timeout(10000) + + const now = new Date() - it('Should get filter by level', async function () { - this.timeout(10000) + 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') + const logsString = JSON.stringify(res.body) - await uploadVideo(server.url, server.accessToken, { name: 'video 6' }) - await waitJobs([ server ]) + expect(logsString.includes('video 6')).to.be.true + } + + { + const res = await getLogs(server.url, server.accessToken, now, undefined, 'warn') + const logsString = JSON.stringify(res.body) + + expect(logsString.includes('video 6')).to.be.false + } + }) + + it('Should log ping requests', async function () { + const now = new Date() + + await makePingRequest(server) - { const res = await getLogs(server.url, server.accessToken, now, undefined, 'info') const logsString = JSON.stringify(res.body) - expect(logsString.includes('video 6')).to.be.true - } + expect(logsString.includes('/api/v1/ping')).to.be.true + }) + + it('Should not log ping requests', async function () { + this.timeout(30000) + + killallServers([ server ]) + + await reRunServer(server, { log: { log_ping_requests: false } }) + + const now = new Date() + + await makePingRequest(server) + + const res = await getLogs(server.url, server.accessToken, now, undefined, 'info') + const logsString = JSON.stringify(res.body) + + expect(logsString.includes('/api/v1/ping')).to.be.false + }) + }) + + describe('With the audit log', function () { + it('Should get logs with a start date', async function () { + this.timeout(10000) + + await uploadVideo(server.url, server.accessToken, { name: 'video 7' }) + await waitJobs([ server ]) + + const now = new Date() + + 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 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 () {