83 lines
2.4 KiB
TypeScript
83 lines
2.4 KiB
TypeScript
import { AdminPluginPage } from '../po/admin-plugin.po'
|
|
import { LoginPage } from '../po/login.po'
|
|
import { VideoUploadPage } from '../po/video-upload.po'
|
|
import { getCheckbox, isMobileDevice, waitServerUp } from '../utils'
|
|
|
|
describe('Plugins', () => {
|
|
let videoUploadPage: VideoUploadPage
|
|
let loginPage: LoginPage
|
|
let adminPluginPage: AdminPluginPage
|
|
|
|
function getPluginCheckbox () {
|
|
return getCheckbox('hello-world-field-4')
|
|
}
|
|
|
|
async function expectSubmitState ({ disabled }: { disabled: boolean }) {
|
|
const disabledSubmit = await $('my-button .disabled')
|
|
|
|
if (disabled) expect(await disabledSubmit.isDisplayed()).toBeTruthy()
|
|
else expect(await disabledSubmit.isDisplayed()).toBeFalsy()
|
|
}
|
|
|
|
before(async () => {
|
|
await waitServerUp()
|
|
})
|
|
|
|
beforeEach(async () => {
|
|
loginPage = new LoginPage(isMobileDevice())
|
|
videoUploadPage = new VideoUploadPage()
|
|
adminPluginPage = new AdminPluginPage()
|
|
|
|
await browser.maximizeWindow()
|
|
})
|
|
|
|
it('Should install hello world plugin', async () => {
|
|
await loginPage.loginAsRootUser()
|
|
|
|
await adminPluginPage.navigateToPluginSearch()
|
|
await adminPluginPage.search('hello-world')
|
|
await adminPluginPage.installHelloWorld()
|
|
await browser.refresh()
|
|
})
|
|
|
|
it('Should have checkbox in video edit page', async () => {
|
|
await videoUploadPage.navigateTo()
|
|
await videoUploadPage.uploadVideo('video.mp4')
|
|
|
|
await $('span=Super field 4 in main tab').waitForDisplayed()
|
|
|
|
const checkbox = await getPluginCheckbox()
|
|
expect(await checkbox.isDisplayed()).toBeTruthy()
|
|
|
|
await expectSubmitState({ disabled: true })
|
|
})
|
|
|
|
it('Should check the checkbox and be able to submit the video', async function () {
|
|
const checkbox = await getPluginCheckbox()
|
|
|
|
await checkbox.waitForClickable()
|
|
await checkbox.click()
|
|
|
|
await expectSubmitState({ disabled: false })
|
|
})
|
|
|
|
it('Should uncheck the checkbox and not be able to submit the video', async function () {
|
|
const checkbox = await getPluginCheckbox()
|
|
|
|
await checkbox.waitForClickable()
|
|
await checkbox.click()
|
|
|
|
await expectSubmitState({ disabled: true })
|
|
|
|
const error = await $('.form-error*=Should be enabled')
|
|
|
|
expect(await error.isDisplayed()).toBeTruthy()
|
|
})
|
|
|
|
it('Should change the privacy and should hide the checkbox', async function () {
|
|
await videoUploadPage.setAsPrivate()
|
|
|
|
await expectSubmitState({ disabled: false })
|
|
})
|
|
})
|