]>
Commit | Line | Data |
---|---|---|
1 | import { browserSleep, getCheckbox, go, isCheckboxSelected } from '../utils' | |
2 | ||
3 | export class AdminConfigPage { | |
4 | ||
5 | async navigateTo (tab: 'instance-homepage' | 'basic-configuration' | 'instance-information') { | |
6 | const waitTitles = { | |
7 | 'instance-homepage': 'INSTANCE HOMEPAGE', | |
8 | 'basic-configuration': 'APPEARANCE', | |
9 | 'instance-information': 'INSTANCE' | |
10 | } | |
11 | await go('/admin/config/edit-custom#' + tab) | |
12 | ||
13 | await $('.inner-form-title=' + waitTitles[tab]).waitForDisplayed() | |
14 | } | |
15 | ||
16 | async updateNSFWSetting (newValue: 'do_not_list' | 'blur' | 'display') { | |
17 | const elem = $('#instanceDefaultNSFWPolicy') | |
18 | ||
19 | await elem.waitForDisplayed() | |
20 | await elem.scrollIntoView({ block: 'center' }) // Avoid issues with fixed header | |
21 | await elem.waitForClickable() | |
22 | ||
23 | return elem.selectByAttribute('value', newValue) | |
24 | } | |
25 | ||
26 | updateHomepage (newValue: string) { | |
27 | return $('#instanceCustomHomepageContent').setValue(newValue) | |
28 | } | |
29 | ||
30 | async toggleSignup (enabled: boolean) { | |
31 | if (await isCheckboxSelected('signupEnabled') === enabled) return | |
32 | ||
33 | const checkbox = await getCheckbox('signupEnabled') | |
34 | ||
35 | await checkbox.waitForClickable() | |
36 | await checkbox.click() | |
37 | } | |
38 | ||
39 | async toggleSignupApproval (required: boolean) { | |
40 | if (await isCheckboxSelected('signupRequiresApproval') === required) return | |
41 | ||
42 | const checkbox = await getCheckbox('signupRequiresApproval') | |
43 | ||
44 | await checkbox.waitForClickable() | |
45 | await checkbox.click() | |
46 | } | |
47 | ||
48 | async toggleSignupEmailVerification (required: boolean) { | |
49 | if (await isCheckboxSelected('signupRequiresEmailVerification') === required) return | |
50 | ||
51 | const checkbox = await getCheckbox('signupRequiresEmailVerification') | |
52 | ||
53 | await checkbox.waitForClickable() | |
54 | await checkbox.click() | |
55 | } | |
56 | ||
57 | async save () { | |
58 | const button = $('input[type=submit]') | |
59 | ||
60 | await button.waitForClickable() | |
61 | await button.click() | |
62 | ||
63 | await browserSleep(1000) | |
64 | } | |
65 | } |