import { AdminConfigPage } from '../po/admin-config.po' import { LoginPage } from '../po/login.po' import { SignupPage } from '../po/signup.po' import { waitServerUp } from '../utils' describe('Signup', () => { let loginPage: LoginPage let adminConfigPage: AdminConfigPage let signupPage: SignupPage before(async () => { await waitServerUp() }) beforeEach(async () => { loginPage = new LoginPage() adminConfigPage = new AdminConfigPage() signupPage = new SignupPage() await browser.maximizeWindow() }) it('Should disable signup', async () => { await loginPage.loginAsRootUser() await adminConfigPage.navigateTo('basic-configuration') await adminConfigPage.toggleSignup() await adminConfigPage.save() await loginPage.logout() await browser.refresh() expect(signupPage.getRegisterMenuButton()).not.toBeDisplayed() }) it('Should enable signup', async () => { await loginPage.loginAsRootUser() await adminConfigPage.navigateTo('basic-configuration') await adminConfigPage.toggleSignup() await adminConfigPage.save() await loginPage.logout() await browser.refresh() expect(signupPage.getRegisterMenuButton()).toBeDisplayed() }) it('Should go on signup page', async function () { await signupPage.clickOnRegisterInMenu() }) it('Should validate the first step (about page)', async function () { await signupPage.validateStep() }) it('Should validate the second step (terms)', async function () { await signupPage.checkTerms() await signupPage.validateStep() }) it('Should validate the third step (account)', async function () { await signupPage.fillAccountStep({ displayName: 'user 1', username: 'user_1', email: 'user_1@example.com', password: 'my_super_password' }) await signupPage.validateStep() }) it('Should validate the third step (channel)', async function () { await signupPage.fillChannelStep({ displayName: 'user 1 channel', name: 'user_1_channel' }) await signupPage.validateStep() }) it('Should be logged in', async function () { await loginPage.ensureIsLoggedInAs('user 1') }) })