X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fe2e%2Fsrc%2Fpo%2Flogin.po.ts;h=91bf46e302225a9103f216931f91c372bb01a5ac;hb=57702d2537db0e1bbefd58d87b5097baad6acde7;hp=40f958d2b5410b1241fe4738c1861f18bbc8172c;hpb=0b33c5206023de0946b247e767087a518e0dec9a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/e2e/src/po/login.po.ts b/client/e2e/src/po/login.po.ts index 40f958d2b..91bf46e30 100644 --- a/client/e2e/src/po/login.po.ts +++ b/client/e2e/src/po/login.po.ts @@ -1,16 +1,77 @@ -import { browser, element, by } from 'protractor' +import { go } from '../utils' export class LoginPage { + + constructor (private isMobileDevice: boolean) { + + } + + async login (username: string, password: string, url = '/login') { + await go(url) + + await browser.execute(`window.localStorage.setItem('no_account_setup_warning_modal', 'true')`) + await browser.execute(`window.localStorage.setItem('no_instance_config_warning_modal', 'true')`) + await browser.execute(`window.localStorage.setItem('no_welcome_modal', 'true')`) + + await $('input#username').setValue(username) + await $('input#password').setValue(password) + + await browser.pause(1000) + + await $('form input[type=submit]').click() + + const menuToggle = $('.top-left-block span[role=button]') + + if (this.isMobileDevice) { + await browser.pause(1000) + + await menuToggle.click() + } + + await this.ensureIsLoggedInAs(username) + + if (this.isMobileDevice) { + await menuToggle.click() + } + } + async loginAsRootUser () { - await browser.get('/login') + return this.login('root', 'test' + this.getSuffix()) + } + + loginOnPeerTube2 () { + return this.login('e2e', process.env.PEERTUBE2_E2E_PASSWORD, 'https://peertube2.cpy.re/login') + } + + async logout () { + const loggedInMore = $('.logged-in-more') + + await loggedInMore.waitForClickable() + await loggedInMore.click() - element(by.css('input#username')).sendKeys('root') - element(by.css('input#password')).sendKeys('test1') + const logout = $('.dropdown-item*=Log out') - await browser.sleep(1000) + await logout.waitForClickable() + await logout.click() - await element(by.css('form input[type=submit]')).click() + await browser.waitUntil(() => { + return $('.login-buttons-block, my-error-page a[href="/login"]').isDisplayed() + }) + } + + async ensureIsLoggedInAs (displayName: string) { + await this.getLoggedInInfoElem().waitForExist() + + await expect(this.getLoggedInInfoElem()).toHaveText(displayName) + } + + private getLoggedInInfoElem () { + return $('.logged-in-display-name') + } - return browser.wait(browser.ExpectedConditions.urlContains('/videos/')) + private getSuffix () { + return browser.config.baseUrl + ? browser.config.baseUrl.slice(-1) + : '1' } }