]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/e2e/src/suites-local/plugins.e2e-spec.ts
Merge remote-tracking branch 'weblate/develop' into develop
[github/Chocobozzz/PeerTube.git] / client / e2e / src / suites-local / plugins.e2e-spec.ts
CommitLineData
3c065fe3
C
1import { AdminPluginPage } from '../po/admin-plugin.po'
2import { LoginPage } from '../po/login.po'
3import { VideoUploadPage } from '../po/video-upload.po'
814e9e07 4import { getCheckbox, isMobileDevice, waitServerUp } from '../utils'
3c065fe3
C
5
6describe('Plugins', () => {
7 let videoUploadPage: VideoUploadPage
8 let loginPage: LoginPage
9 let adminPluginPage: AdminPluginPage
10
11 function getPluginCheckbox () {
12 return getCheckbox('hello-world-field-4')
13 }
14
15 async function expectSubmitState ({ disabled }: { disabled: boolean }) {
16 const disabledSubmit = await $('my-button .disabled')
17
18 if (disabled) expect(await disabledSubmit.isDisplayed()).toBeTruthy()
19 else expect(await disabledSubmit.isDisplayed()).toBeFalsy()
20 }
21
22 before(async () => {
23 await waitServerUp()
24 })
25
26 beforeEach(async () => {
814e9e07 27 loginPage = new LoginPage(isMobileDevice())
3c065fe3
C
28 videoUploadPage = new VideoUploadPage()
29 adminPluginPage = new AdminPluginPage()
30
31 await browser.maximizeWindow()
32 })
33
34 it('Should install hello world plugin', async () => {
35 await loginPage.loginAsRootUser()
36
1db86422 37 await adminPluginPage.navigateToPluginSearch()
3c065fe3
C
38 await adminPluginPage.search('hello-world')
39 await adminPluginPage.installHelloWorld()
40 await browser.refresh()
41 })
42
43 it('Should have checkbox in video edit page', async () => {
44 await videoUploadPage.navigateTo()
814e9e07 45 await videoUploadPage.uploadVideo('video.mp4')
3c065fe3
C
46
47 await $('span=Super field 4 in main tab').waitForDisplayed()
48
49 const checkbox = await getPluginCheckbox()
50 expect(await checkbox.isDisplayed()).toBeTruthy()
51
52 await expectSubmitState({ disabled: true })
53 })
54
55 it('Should check the checkbox and be able to submit the video', async function () {
56 const checkbox = await getPluginCheckbox()
814e9e07
C
57
58 await checkbox.waitForClickable()
3c065fe3
C
59 await checkbox.click()
60
61 await expectSubmitState({ disabled: false })
62 })
63
64 it('Should uncheck the checkbox and not be able to submit the video', async function () {
65 const checkbox = await getPluginCheckbox()
814e9e07
C
66
67 await checkbox.waitForClickable()
3c065fe3
C
68 await checkbox.click()
69
3c065fe3
C
70 await expectSubmitState({ disabled: true })
71
72 const error = await $('.form-error*=Should be enabled')
cc4bf76c 73
3c065fe3
C
74 expect(await error.isDisplayed()).toBeTruthy()
75 })
76
77 it('Should change the privacy and should hide the checkbox', async function () {
78 await videoUploadPage.setAsPrivate()
79
80 await expectSubmitState({ disabled: false })
81 })
82})