fix(UiKit): Modal validation not working (#32679)
parent
35985d7e18
commit
88e5219bd2
@ -0,0 +1,6 @@ |
||||
--- |
||||
"@rocket.chat/meteor": patch |
||||
"@rocket.chat/fuselage-ui-kit": patch |
||||
--- |
||||
|
||||
Fix validations from "UiKit" modal component |
||||
@ -1,7 +1,7 @@ |
||||
import { Users } from './fixtures/userStates'; |
||||
import { HomeChannel } from './page-objects'; |
||||
import { createTargetChannel } from './utils/create-target-channel'; |
||||
import { test, expect } from './utils/test'; |
||||
import { Users } from '../fixtures/userStates'; |
||||
import { HomeChannel } from '../page-objects'; |
||||
import { createTargetChannel } from '../utils/create-target-channel'; |
||||
import { test, expect } from '../utils/test'; |
||||
|
||||
test.use({ storageState: Users.admin.state }); |
||||
|
||||
@ -1,26 +1,34 @@ |
||||
import { Users } from './fixtures/userStates'; |
||||
import { HomeChannel } from './page-objects'; |
||||
import { expect, test } from './utils/test'; |
||||
import type { Page } from '@playwright/test'; |
||||
|
||||
import { Users } from '../fixtures/userStates'; |
||||
import { HomeChannel } from '../page-objects'; |
||||
import { expect, test } from '../utils/test'; |
||||
|
||||
test.use({ storageState: Users.user1.state }); |
||||
|
||||
test.describe.serial('Apps', () => { |
||||
test.describe.serial('Apps > ContextualBar', () => { |
||||
let poHomeChannel: HomeChannel; |
||||
|
||||
test.beforeEach(async ({ page }) => { |
||||
let page: Page; |
||||
|
||||
test.beforeAll(async ({ browser }) => { |
||||
page = await browser.newPage(); |
||||
poHomeChannel = new HomeChannel(page); |
||||
|
||||
await page.goto('/home'); |
||||
await poHomeChannel.sidenav.openChat('general'); |
||||
}); |
||||
|
||||
test.afterAll(async () => { |
||||
await page.close(); |
||||
}); |
||||
|
||||
test('expect allow user open app contextualbar', async () => { |
||||
await poHomeChannel.content.dispatchSlashCommand('/contextualbar'); |
||||
await expect(poHomeChannel.btnContextualbarClose).toBeVisible(); |
||||
}); |
||||
|
||||
test('expect app contextualbar to be closed', async () => { |
||||
await poHomeChannel.content.dispatchSlashCommand('/contextualbar'); |
||||
await poHomeChannel.btnContextualbarClose.click(); |
||||
await expect(poHomeChannel.btnContextualbarClose).toBeHidden(); |
||||
}); |
||||
@ -0,0 +1,49 @@ |
||||
import type { Page } from '@playwright/test'; |
||||
|
||||
import { Users } from '../fixtures/userStates'; |
||||
import { HomeChannel } from '../page-objects'; |
||||
import { Modal } from '../page-objects/modal'; |
||||
import { expect, test } from '../utils/test'; |
||||
|
||||
test.use({ storageState: Users.user1.state }); |
||||
|
||||
test.describe.serial('Apps > ContextualBar', () => { |
||||
let poHomeChannel: HomeChannel; |
||||
let poModal: Modal; |
||||
|
||||
let page: Page; |
||||
|
||||
test.beforeAll(async ({ browser }) => { |
||||
page = await browser.newPage(); |
||||
|
||||
poHomeChannel = new HomeChannel(page); |
||||
poModal = new Modal(page); |
||||
|
||||
await page.goto('/home'); |
||||
await poHomeChannel.sidenav.openChat('general'); |
||||
}); |
||||
|
||||
test.afterAll(async () => { |
||||
await page.close(); |
||||
}); |
||||
|
||||
test('expect allow user open app modal', async () => { |
||||
await poHomeChannel.content.dispatchSlashCommand('/modal'); |
||||
await expect(poModal.btnModalSubmit).toBeVisible(); |
||||
}); |
||||
|
||||
test('expect validation error message appears in app modal', async () => { |
||||
await expect(poModal.textInput).toBeVisible(); |
||||
|
||||
await poModal.btnModalSubmit.click(); |
||||
|
||||
await expect(poModal.textInputErrorMessage).toBeVisible(); |
||||
}); |
||||
|
||||
test("expect validation error message don't appears in app modal", async () => { |
||||
await poModal.textInput.fill('something'); |
||||
await poModal.btnModalSubmit.click(); |
||||
|
||||
await expect(poModal.textInputErrorMessage).not.toBeVisible(); |
||||
}); |
||||
}); |
||||
@ -0,0 +1,21 @@ |
||||
import type { Locator, Page } from '@playwright/test'; |
||||
|
||||
export class Modal { |
||||
protected readonly page: Page; |
||||
|
||||
constructor(page: Page) { |
||||
this.page = page; |
||||
} |
||||
|
||||
get textInput(): Locator { |
||||
return this.page.locator('[name="modal_input"]'); |
||||
} |
||||
|
||||
get textInputErrorMessage(): Locator { |
||||
return this.page.getByText('Validation failed'); |
||||
} |
||||
|
||||
get btnModalSubmit(): Locator { |
||||
return this.page.locator('role=button[name="Submit"]'); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue