aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests/plugins/plugin-storage.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/tests/plugins/plugin-storage.ts')
-rw-r--r--server/tests/plugins/plugin-storage.ts80
1 files changed, 77 insertions, 3 deletions
diff --git a/server/tests/plugins/plugin-storage.ts b/server/tests/plugins/plugin-storage.ts
index 356692eb9..3c46b2585 100644
--- a/server/tests/plugins/plugin-storage.ts
+++ b/server/tests/plugins/plugin-storage.ts
@@ -1,7 +1,18 @@
1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */ 1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
2 2
3import 'mocha' 3import 'mocha'
4import { getPluginTestPath, installPlugin, setAccessTokensToServers } from '../../../shared/extra-utils' 4import { expect } from 'chai'
5import { pathExists, readdir, readFile } from 'fs-extra'
6import { join } from 'path'
7import { HttpStatusCode } from '@shared/core-utils'
8import {
9 buildServerDirectory,
10 getPluginTestPath,
11 installPlugin,
12 makeGetRequest,
13 setAccessTokensToServers,
14 uninstallPlugin
15} from '../../../shared/extra-utils'
5import { cleanupTests, flushAndRunServer, ServerInfo, waitUntilLog } from '../../../shared/extra-utils/server/servers' 16import { cleanupTests, flushAndRunServer, ServerInfo, waitUntilLog } from '../../../shared/extra-utils/server/servers'
6 17
7describe('Test plugin storage', function () { 18describe('Test plugin storage', function () {
@@ -20,8 +31,71 @@ describe('Test plugin storage', function () {
20 }) 31 })
21 }) 32 })
22 33
23 it('Should correctly store a subkey', async function () { 34 describe('DB storage', function () {
24 await waitUntilLog(server, 'superkey stored value is toto') 35
36 it('Should correctly store a subkey', async function () {
37 await waitUntilLog(server, 'superkey stored value is toto')
38 })
39 })
40
41 describe('Disk storage', function () {
42 let dataPath: string
43 let pluginDataPath: string
44
45 async function getFileContent () {
46 const files = await readdir(pluginDataPath)
47 expect(files).to.have.lengthOf(1)
48
49 return readFile(join(pluginDataPath, files[0]), 'utf8')
50 }
51
52 before(function () {
53 dataPath = buildServerDirectory(server, 'plugins/data')
54 pluginDataPath = join(dataPath, 'peertube-plugin-test-six')
55 })
56
57 it('Should have created the directory on install', async function () {
58 const dataPath = buildServerDirectory(server, 'plugins/data')
59 const pluginDataPath = join(dataPath, 'peertube-plugin-test-six')
60
61 expect(await pathExists(dataPath)).to.be.true
62 expect(await pathExists(pluginDataPath)).to.be.true
63 expect(await readdir(pluginDataPath)).to.have.lengthOf(0)
64 })
65
66 it('Should have created a file', async function () {
67 await makeGetRequest({
68 url: server.url,
69 token: server.accessToken,
70 path: '/plugins/test-six/router/create-file',
71 statusCodeExpected: HttpStatusCode.OK_200
72 })
73
74 const content = await getFileContent()
75 expect(content).to.equal('Prince Ali')
76 })
77
78 it('Should still have the file after an uninstallation', async function () {
79 await uninstallPlugin({
80 url: server.url,
81 accessToken: server.accessToken,
82 npmName: 'peertube-plugin-test-six'
83 })
84
85 const content = await getFileContent()
86 expect(content).to.equal('Prince Ali')
87 })
88
89 it('Should still have the file after the reinstallation', async function () {
90 await installPlugin({
91 url: server.url,
92 accessToken: server.accessToken,
93 path: getPluginTestPath('-six')
94 })
95
96 const content = await getFileContent()
97 expect(content).to.equal('Prince Ali')
98 })
25 }) 99 })
26 100
27 after(async function () { 101 after(async function () {