]>
Commit | Line | Data |
---|---|---|
1 | import { go } from '../utils' | |
2 | ||
3 | export class LoginPage { | |
4 | ||
5 | constructor (private isMobileDevice: boolean) { | |
6 | ||
7 | } | |
8 | ||
9 | async login (username: string, password: string, url = '/login') { | |
10 | await go(url) | |
11 | ||
12 | await browser.execute(`window.localStorage.setItem('no_account_setup_warning_modal', 'true')`) | |
13 | await browser.execute(`window.localStorage.setItem('no_instance_config_warning_modal', 'true')`) | |
14 | await browser.execute(`window.localStorage.setItem('no_welcome_modal', 'true')`) | |
15 | ||
16 | await $('input#username').setValue(username) | |
17 | await $('input#password').setValue(password) | |
18 | ||
19 | await browser.pause(1000) | |
20 | ||
21 | await $('form input[type=submit]').click() | |
22 | ||
23 | const menuToggle = $('.top-left-block span[role=button]') | |
24 | ||
25 | if (this.isMobileDevice) { | |
26 | await browser.pause(1000) | |
27 | ||
28 | await menuToggle.click() | |
29 | } | |
30 | ||
31 | await this.ensureIsLoggedInAs(username) | |
32 | ||
33 | if (this.isMobileDevice) { | |
34 | await menuToggle.click() | |
35 | } | |
36 | } | |
37 | ||
38 | async loginAsRootUser () { | |
39 | return this.login('root', 'test' + this.getSuffix()) | |
40 | } | |
41 | ||
42 | loginOnPeerTube2 () { | |
43 | return this.login('e2e', process.env.PEERTUBE2_E2E_PASSWORD, 'https://peertube2.cpy.re/login') | |
44 | } | |
45 | ||
46 | async logout () { | |
47 | const loggedInMore = $('.logged-in-more') | |
48 | ||
49 | await loggedInMore.waitForClickable() | |
50 | await loggedInMore.click() | |
51 | ||
52 | const logout = $('.dropdown-item*=Log out') | |
53 | ||
54 | await logout.waitForClickable() | |
55 | await logout.click() | |
56 | ||
57 | await browser.waitUntil(() => { | |
58 | return $('.login-buttons-block, my-error-page a[href="/login"]').isDisplayed() | |
59 | }) | |
60 | } | |
61 | ||
62 | async ensureIsLoggedInAs (displayName: string) { | |
63 | await this.getLoggedInInfoElem().waitForExist() | |
64 | ||
65 | await expect(this.getLoggedInInfoElem()).toHaveText(displayName) | |
66 | } | |
67 | ||
68 | private getLoggedInInfoElem () { | |
69 | return $('.logged-in-display-name') | |
70 | } | |
71 | ||
72 | private getSuffix () { | |
73 | return browser.config.baseUrl | |
74 | ? browser.config.baseUrl.slice(-1) | |
75 | : '1' | |
76 | } | |
77 | } |