aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/tests
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2019-07-26 14:44:50 +0200
committerChocobozzz <me@florianbigard.com>2019-07-26 15:18:30 +0200
commitd75db01f14138ea660c4c519e37ab05228b39d13 (patch)
tree85a3da315ea6e1501fec5b70790482504dd64793 /server/tests
parentee286591a5b740702bad66c55cc900740f749e9a (diff)
downloadPeerTube-d75db01f14138ea660c4c519e37ab05228b39d13.tar.gz
PeerTube-d75db01f14138ea660c4c519e37ab05228b39d13.tar.zst
PeerTube-d75db01f14138ea660c4c519e37ab05228b39d13.zip
Add plugin translation system
Diffstat (limited to 'server/tests')
-rw-r--r--server/tests/fixtures/peertube-plugin-test-three/package.json3
-rw-r--r--server/tests/fixtures/peertube-plugin-test-two/languages/fr.json3
-rw-r--r--server/tests/fixtures/peertube-plugin-test-two/languages/it.json3
-rw-r--r--server/tests/fixtures/peertube-plugin-test-two/package.json6
-rw-r--r--server/tests/fixtures/peertube-plugin-test/languages/fr.json3
-rw-r--r--server/tests/fixtures/peertube-plugin-test/package.json5
-rw-r--r--server/tests/plugins/index.ts1
-rw-r--r--server/tests/plugins/translations.ts113
8 files changed, 134 insertions, 3 deletions
diff --git a/server/tests/fixtures/peertube-plugin-test-three/package.json b/server/tests/fixtures/peertube-plugin-test-three/package.json
index 3f7819db3..41d4c93fe 100644
--- a/server/tests/fixtures/peertube-plugin-test-three/package.json
+++ b/server/tests/fixtures/peertube-plugin-test-three/package.json
@@ -15,5 +15,6 @@
15 "library": "./main.js", 15 "library": "./main.js",
16 "staticDirs": {}, 16 "staticDirs": {},
17 "css": [], 17 "css": [],
18 "clientScripts": [] 18 "clientScripts": [],
19 "translations": {}
19} 20}
diff --git a/server/tests/fixtures/peertube-plugin-test-two/languages/fr.json b/server/tests/fixtures/peertube-plugin-test-two/languages/fr.json
new file mode 100644
index 000000000..52d8313df
--- /dev/null
+++ b/server/tests/fixtures/peertube-plugin-test-two/languages/fr.json
@@ -0,0 +1,3 @@
1{
2 "Hello world": "Bonjour le monde"
3}
diff --git a/server/tests/fixtures/peertube-plugin-test-two/languages/it.json b/server/tests/fixtures/peertube-plugin-test-two/languages/it.json
new file mode 100644
index 000000000..9e187d83b
--- /dev/null
+++ b/server/tests/fixtures/peertube-plugin-test-two/languages/it.json
@@ -0,0 +1,3 @@
1{
2 "Hello world": "Ciao, mondo!"
3}
diff --git a/server/tests/fixtures/peertube-plugin-test-two/package.json b/server/tests/fixtures/peertube-plugin-test-two/package.json
index 52ebb5ac1..926f2d69b 100644
--- a/server/tests/fixtures/peertube-plugin-test-two/package.json
+++ b/server/tests/fixtures/peertube-plugin-test-two/package.json
@@ -15,5 +15,9 @@
15 "library": "./main.js", 15 "library": "./main.js",
16 "staticDirs": {}, 16 "staticDirs": {},
17 "css": [], 17 "css": [],
18 "clientScripts": [] 18 "clientScripts": [],
19 "translations": {
20 "fr-FR": "./languages/fr.json",
21 "it-IT": "./languages/it.json"
22 }
19} 23}
diff --git a/server/tests/fixtures/peertube-plugin-test/languages/fr.json b/server/tests/fixtures/peertube-plugin-test/languages/fr.json
new file mode 100644
index 000000000..9e52f7065
--- /dev/null
+++ b/server/tests/fixtures/peertube-plugin-test/languages/fr.json
@@ -0,0 +1,3 @@
1{
2 "Hi": "Coucou"
3}
diff --git a/server/tests/fixtures/peertube-plugin-test/package.json b/server/tests/fixtures/peertube-plugin-test/package.json
index 9d6fe5c90..108f21fd6 100644
--- a/server/tests/fixtures/peertube-plugin-test/package.json
+++ b/server/tests/fixtures/peertube-plugin-test/package.json
@@ -15,5 +15,8 @@
15 "library": "./main.js", 15 "library": "./main.js",
16 "staticDirs": {}, 16 "staticDirs": {},
17 "css": [], 17 "css": [],
18 "clientScripts": [] 18 "clientScripts": [],
19 "translations": {
20 "fr-FR": "./languages/fr.json"
21 }
19} 22}
diff --git a/server/tests/plugins/index.ts b/server/tests/plugins/index.ts
index 95e358732..f41708055 100644
--- a/server/tests/plugins/index.ts
+++ b/server/tests/plugins/index.ts
@@ -1,3 +1,4 @@
1import './action-hooks' 1import './action-hooks'
2import './filter-hooks' 2import './filter-hooks'
3import './translations'
3import './video-constants' 4import './video-constants'
diff --git a/server/tests/plugins/translations.ts b/server/tests/plugins/translations.ts
new file mode 100644
index 000000000..88d91a033
--- /dev/null
+++ b/server/tests/plugins/translations.ts
@@ -0,0 +1,113 @@
1/* tslint:disable:no-unused-expression */
2
3import * as chai from 'chai'
4import 'mocha'
5import {
6 cleanupTests,
7 flushAndRunMultipleServers,
8 flushAndRunServer, killallServers, reRunServer,
9 ServerInfo,
10 waitUntilLog
11} from '../../../shared/extra-utils/server/servers'
12import {
13 addVideoCommentReply,
14 addVideoCommentThread,
15 deleteVideoComment,
16 getPluginTestPath,
17 getVideosList,
18 installPlugin,
19 removeVideo,
20 setAccessTokensToServers,
21 updateVideo,
22 uploadVideo,
23 viewVideo,
24 getVideosListPagination,
25 getVideo,
26 getVideoCommentThreads,
27 getVideoThreadComments,
28 getVideoWithToken,
29 setDefaultVideoChannel,
30 waitJobs,
31 doubleFollow, getVideoLanguages, getVideoLicences, getVideoCategories, uninstallPlugin, getPluginTranslations
32} from '../../../shared/extra-utils'
33import { VideoCommentThreadTree } from '../../../shared/models/videos/video-comment.model'
34import { VideoDetails } from '../../../shared/models/videos'
35import { getYoutubeVideoUrl, importVideo } from '../../../shared/extra-utils/videos/video-imports'
36
37const expect = chai.expect
38
39describe('Test plugin translations', function () {
40 let server: ServerInfo
41
42 before(async function () {
43 this.timeout(30000)
44
45 server = await flushAndRunServer(1)
46 await setAccessTokensToServers([ server ])
47
48 await installPlugin({
49 url: server.url,
50 accessToken: server.accessToken,
51 path: getPluginTestPath()
52 })
53
54 await installPlugin({
55 url: server.url,
56 accessToken: server.accessToken,
57 path: getPluginTestPath('-two')
58 })
59 })
60
61 it('Should not have translations for locale pt', async function () {
62 const res = await getPluginTranslations({ url: server.url, locale: 'pt' })
63
64 expect(res.body).to.deep.equal({})
65 })
66
67 it('Should have translations for locale fr', async function () {
68 const res = await getPluginTranslations({ url: server.url, locale: 'fr-FR' })
69
70 expect(res.body).to.deep.equal({
71 'peertube-plugin-test': {
72 'Hi': 'Coucou'
73 },
74 'peertube-plugin-test-two': {
75 'Hello world': 'Bonjour le monde'
76 }
77 })
78 })
79
80 it('Should have translations of locale it', async function () {
81 const res = await getPluginTranslations({ url: server.url, locale: 'it-IT' })
82
83 expect(res.body).to.deep.equal({
84 'peertube-plugin-test-two': {
85 'Hello world': 'Ciao, mondo!'
86 }
87 })
88 })
89
90 it('Should remove the plugin and remove the locales', async function () {
91 await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-two' })
92
93 {
94 const res = await getPluginTranslations({ url: server.url, locale: 'fr-FR' })
95
96 expect(res.body).to.deep.equal({
97 'peertube-plugin-test': {
98 'Hi': 'Coucou'
99 }
100 })
101 }
102
103 {
104 const res = await getPluginTranslations({ url: server.url, locale: 'it-IT' })
105
106 expect(res.body).to.deep.equal({})
107 }
108 })
109
110 after(async function () {
111 await cleanupTests([ server ])
112 })
113})