mirror of https://github.com/Chocobozzz/PeerTube
Tests that show the bug.
parent
dc48fdbe68
commit
4113719209
|
@ -0,0 +1,2 @@
|
|||
const d = new Date()
|
||||
exports.value = d.getTime()
|
|
@ -0,0 +1,14 @@
|
|||
const lib = require('./lib')
|
||||
|
||||
async function register ({ getRouter }) {
|
||||
const router = getRouter()
|
||||
router.get('/get', (req, res) => res.json({ message: lib.value }))
|
||||
}
|
||||
|
||||
async function unregister () {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
register,
|
||||
unregister
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "peertube-plugin-test-unloading",
|
||||
"version": "0.0.1",
|
||||
"description": "Plugin test (modules unloading)",
|
||||
"engine": {
|
||||
"peertube": ">=1.3.0"
|
||||
},
|
||||
"keywords": [
|
||||
"peertube",
|
||||
"plugin"
|
||||
],
|
||||
"homepage": "https://github.com/Chocobozzz/PeerTube",
|
||||
"author": "Chocobozzz",
|
||||
"bugs": "https://github.com/Chocobozzz/PeerTube/issues",
|
||||
"library": "./main.js",
|
||||
"staticDirs": {},
|
||||
"css": [],
|
||||
"clientScripts": [],
|
||||
"translations": {}
|
||||
}
|
|
@ -7,5 +7,6 @@ import './plugin-helpers'
|
|||
import './plugin-router'
|
||||
import './plugin-storage'
|
||||
import './plugin-transcoding'
|
||||
import './plugin-unloading'
|
||||
import './translations'
|
||||
import './video-constants'
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
|
||||
|
||||
import 'mocha'
|
||||
import {
|
||||
cleanupTests,
|
||||
flushAndRunServer,
|
||||
getPluginTestPath,
|
||||
makeGetRequest,
|
||||
installPlugin,
|
||||
uninstallPlugin,
|
||||
ServerInfo,
|
||||
setAccessTokensToServers
|
||||
} from '../../../shared/extra-utils'
|
||||
import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
|
||||
import { expect } from 'chai'
|
||||
|
||||
describe('Test plugins module unloading', function () {
|
||||
let server: ServerInfo = null
|
||||
const requestPath = '/plugins/test-unloading/router/get'
|
||||
let value: string = null
|
||||
|
||||
before(async function () {
|
||||
this.timeout(30000)
|
||||
|
||||
server = await flushAndRunServer(1)
|
||||
await setAccessTokensToServers([ server ])
|
||||
|
||||
await installPlugin({
|
||||
url: server.url,
|
||||
accessToken: server.accessToken,
|
||||
path: getPluginTestPath('-unloading')
|
||||
})
|
||||
})
|
||||
|
||||
it('Should return a numeric value', async function () {
|
||||
const res = await makeGetRequest({
|
||||
url: server.url,
|
||||
path: requestPath,
|
||||
statusCodeExpected: HttpStatusCode.OK_200
|
||||
})
|
||||
|
||||
expect(res.body.message).to.match(/^\d+$/)
|
||||
value = res.body.message
|
||||
})
|
||||
|
||||
it('Should return the same value the second time', async function () {
|
||||
const res = await makeGetRequest({
|
||||
url: server.url,
|
||||
path: requestPath,
|
||||
statusCodeExpected: HttpStatusCode.OK_200
|
||||
})
|
||||
|
||||
expect(res.body.message).to.be.equal(value)
|
||||
})
|
||||
|
||||
it('Should uninstall the plugin and free the route', async function () {
|
||||
await uninstallPlugin({
|
||||
url: server.url,
|
||||
accessToken: server.accessToken,
|
||||
npmName: 'peertube-plugin-test-unloading'
|
||||
})
|
||||
|
||||
await makeGetRequest({
|
||||
url: server.url,
|
||||
path: requestPath,
|
||||
statusCodeExpected: HttpStatusCode.NOT_FOUND_404
|
||||
})
|
||||
})
|
||||
|
||||
it('Should return a different numeric value', async function () {
|
||||
await installPlugin({
|
||||
url: server.url,
|
||||
accessToken: server.accessToken,
|
||||
path: getPluginTestPath('-unloading')
|
||||
})
|
||||
const res = await makeGetRequest({
|
||||
url: server.url,
|
||||
path: requestPath,
|
||||
statusCodeExpected: HttpStatusCode.OK_200
|
||||
})
|
||||
|
||||
expect(res.body.message).to.match(/^\d+$/)
|
||||
expect(res.body.message).to.be.not.equal(value)
|
||||
})
|
||||
|
||||
after(async function () {
|
||||
await cleanupTests([ server ])
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue