mirror of
https://github.com/hcengineering/platform.git
synced 2026-08-17 18:05:42 +02:00
feat: Redesign workspace join (#10507)
* Redesign workspace join Signed-off-by: Artem Savchenko <armisav@gmail.com> * Login rename Signed-off-by: Artem Savchenko <armisav@gmail.com> * Fix UI tests Signed-off-by: Artem Savchenko <armisav@gmail.com> * Fix unstable tests Signed-off-by: Artem Savchenko <armisav@gmail.com> * Minor fixes Signed-off-by: Artem Savchenko <armisav@gmail.com> * Clean up Signed-off-by: Artem Savchenko <armisav@gmail.com> * Fix translations Signed-off-by: Artem Savchenko <armisav@gmail.com> * Redesign join Signed-off-by: Artem Savchenko <armisav@gmail.com> --------- Signed-off-by: Artem Savchenko <armisav@gmail.com>
This commit is contained in:
@@ -12,13 +12,34 @@ export class SignInJoinPage extends CommonPage {
|
||||
|
||||
inputEmail = (): Locator => this.page.locator('input[name="email"]')
|
||||
inputPassword = (): Locator => this.page.locator('//div[text()="Password"]/../input')
|
||||
buttonJoin = (): Locator => this.page.locator('button', { hasText: 'Join' })
|
||||
buttonSubmit = (): Locator => this.page.locator('button[data-id="join-form-submit"]')
|
||||
buttonToggle = (): Locator => this.page.locator('button[data-id="join-form-toggle"]')
|
||||
buttonJoinWithThisAccount = (): Locator => this.page.locator('button[data-id="join-with-this-account"]')
|
||||
buttonUseDifferentAccount = (): Locator => this.page.locator('button[data-id="join-use-different-account"]')
|
||||
|
||||
async join (data: Pick<SignUpData, 'email' | 'password'>): Promise<void> {
|
||||
await this.buttonJoin().click()
|
||||
await Promise.race([
|
||||
this.buttonSubmit().waitFor({ state: 'visible', timeout: 10000 }),
|
||||
this.buttonJoinWithThisAccount().waitFor({ state: 'visible', timeout: 10000 })
|
||||
])
|
||||
|
||||
const submitBtn = this.buttonSubmit()
|
||||
const toggleBtn = this.buttonToggle()
|
||||
const joinWithAccountBtn = this.buttonJoinWithThisAccount()
|
||||
|
||||
if (await joinWithAccountBtn.isVisible({ timeout: 2000 }).catch(() => false)) {
|
||||
await this.buttonUseDifferentAccount().click()
|
||||
await this.inputEmail().waitFor({ state: 'visible', timeout: 5000 })
|
||||
}
|
||||
|
||||
const submitText = await submitBtn.textContent().catch(() => '')
|
||||
if (submitText != null && submitText.toLowerCase().includes('sign up')) {
|
||||
await toggleBtn.click()
|
||||
await this.inputEmail().waitFor({ state: 'visible', timeout: 5000 })
|
||||
}
|
||||
await this.inputEmail().fill(data.email)
|
||||
await this.inputPassword().fill(data.password)
|
||||
expect(await this.buttonJoin().isEnabled()).toBe(true)
|
||||
await this.buttonJoin().click()
|
||||
await expect(this.buttonSubmit()).toBeEnabled()
|
||||
await this.buttonSubmit().click()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user