PeerTube/server/tests/plugins/translations.ts

114 lines
2.9 KiB
TypeScript

/* tslint:disable:no-unused-expression */
import * as chai from 'chai'
import 'mocha'
import {
cleanupTests,
flushAndRunMultipleServers,
flushAndRunServer, killallServers, reRunServer,
ServerInfo,
waitUntilLog
} from '../../../shared/extra-utils/server/servers'
import {
addVideoCommentReply,
addVideoCommentThread,
deleteVideoComment,
getPluginTestPath,
getVideosList,
installPlugin,
removeVideo,
setAccessTokensToServers,
updateVideo,
uploadVideo,
viewVideo,
getVideosListPagination,
getVideo,
getVideoCommentThreads,
getVideoThreadComments,
getVideoWithToken,
setDefaultVideoChannel,
waitJobs,
doubleFollow, getVideoLanguages, getVideoLicences, getVideoCategories, uninstallPlugin, getPluginTranslations
} from '../../../shared/extra-utils'
import { VideoCommentThreadTree } from '../../../shared/models/videos/video-comment.model'
import { VideoDetails } from '../../../shared/models/videos'
import { getYoutubeVideoUrl, importVideo } from '../../../shared/extra-utils/videos/video-imports'
const expect = chai.expect
describe('Test plugin translations', function () {
let server: ServerInfo
before(async function () {
this.timeout(30000)
server = await flushAndRunServer(1)
await setAccessTokensToServers([ server ])
await installPlugin({
url: server.url,
accessToken: server.accessToken,
path: getPluginTestPath()
})
await installPlugin({
url: server.url,
accessToken: server.accessToken,
path: getPluginTestPath('-two')
})
})
it('Should not have translations for locale pt', async function () {
const res = await getPluginTranslations({ url: server.url, locale: 'pt' })
expect(res.body).to.deep.equal({})
})
it('Should have translations for locale fr', async function () {
const res = await getPluginTranslations({ url: server.url, locale: 'fr-FR' })
expect(res.body).to.deep.equal({
'peertube-plugin-test': {
'Hi': 'Coucou'
},
'peertube-plugin-test-two': {
'Hello world': 'Bonjour le monde'
}
})
})
it('Should have translations of locale it', async function () {
const res = await getPluginTranslations({ url: server.url, locale: 'it-IT' })
expect(res.body).to.deep.equal({
'peertube-plugin-test-two': {
'Hello world': 'Ciao, mondo!'
}
})
})
it('Should remove the plugin and remove the locales', async function () {
await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-two' })
{
const res = await getPluginTranslations({ url: server.url, locale: 'fr-FR' })
expect(res.body).to.deep.equal({
'peertube-plugin-test': {
'Hi': 'Coucou'
}
})
}
{
const res = await getPluginTranslations({ url: server.url, locale: 'it-IT' })
expect(res.body).to.deep.equal({})
}
})
after(async function () {
await cleanupTests([ server ])
})
})