aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/e2e/src/po/admin-config.po.ts
blob: 510037ddd7103b80872759896b0433dece5969be (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                                                                            








                                                                                                




                                                                      







                                                                                 





                                                                 


                                                                     
                                                       

                                     


                          

















                                                                                        
                 
                                          

                                   
                        

                            

   
import { browserSleep, getCheckbox, go, isCheckboxSelected } from '../utils'

export class AdminConfigPage {

  async navigateTo (tab: 'instance-homepage' | 'basic-configuration' | 'instance-information') {
    const waitTitles = {
      'instance-homepage': 'INSTANCE HOMEPAGE',
      'basic-configuration': 'APPEARANCE',
      'instance-information': 'INSTANCE'
    }
    await go('/admin/config/edit-custom#' + tab)

    await $('.inner-form-title=' + waitTitles[tab]).waitForDisplayed()
  }

  async updateNSFWSetting (newValue: 'do_not_list' | 'blur' | 'display') {
    const elem = $('#instanceDefaultNSFWPolicy')

    await elem.waitForDisplayed()
    await elem.scrollIntoView(false) // Avoid issues with fixed header on firefox
    await elem.waitForClickable()

    return elem.selectByAttribute('value', newValue)
  }

  updateHomepage (newValue: string) {
    return $('#instanceCustomHomepageContent').setValue(newValue)
  }

  async toggleSignup (enabled: boolean) {
    if (await isCheckboxSelected('signupEnabled') === enabled) return

    const checkbox = await getCheckbox('signupEnabled')

    await checkbox.waitForClickable()
    await checkbox.click()
  }

  async toggleSignupApproval (required: boolean) {
    if (await isCheckboxSelected('signupRequiresApproval') === required) return

    const checkbox = await getCheckbox('signupRequiresApproval')

    await checkbox.waitForClickable()
    await checkbox.click()
  }

  async toggleSignupEmailVerification (required: boolean) {
    if (await isCheckboxSelected('signupRequiresEmailVerification') === required) return

    const checkbox = await getCheckbox('signupRequiresEmailVerification')

    await checkbox.waitForClickable()
    await checkbox.click()
  }

  async save () {
    const button = $('input[type=submit]')

    await button.waitForClickable()
    await button.click()

    await browserSleep(1000)
  }
}