diff --git a/apps/meteor/tests/e2e/channel-management.spec.ts b/apps/meteor/tests/e2e/channel-management.spec.ts index 025c277eb140..61d6c9a2ced2 100644 --- a/apps/meteor/tests/e2e/channel-management.spec.ts +++ b/apps/meteor/tests/e2e/channel-management.spec.ts @@ -1,3 +1,6 @@ +import type { Page } from '@playwright/test'; +import faker from '@faker-js/faker'; + import { test, expect } from './utils/test'; import { HomeChannel } from './page-objects'; import { createTargetChannel } from './utils'; @@ -7,9 +10,13 @@ test.use({ storageState: 'admin-session.json' }); test.describe.serial('channel-management', () => { let poHomeChannel: HomeChannel; let targetChannel: string; + let regularUserPage: Page; - test.beforeAll(async ({ api }) => { + test.beforeAll(async ({ api, browser }) => { targetChannel = await createTargetChannel(api); + regularUserPage = await browser.newPage({ storageState: 'user2-session.json' }); + await regularUserPage.goto('/home'); + await regularUserPage.waitForSelector('[data-qa-id="home-header"]'); }); test.beforeEach(async ({ page }) => { @@ -101,6 +108,19 @@ test.describe.serial('channel-management', () => { await expect(poHomeChannel.toastSuccess).toBeVisible(); }); + test('expect "readOnlyChannel" to show join button', async () => { + const channelName = faker.datatype.uuid(); + + await poHomeChannel.sidenav.openNewByLabel('Channel'); + await poHomeChannel.sidenav.inputChannelName.type(channelName); + await poHomeChannel.sidenav.checkboxPrivateChannel.click(); + await poHomeChannel.sidenav.checkboxReadOnly.click(); + await poHomeChannel.sidenav.btnCreate.click(); + + await regularUserPage.goto(`/channel/${channelName}`); + await expect(regularUserPage.locator('button', { hasText: 'Join' })).toBeVisible(); + }); + test.skip('expect all notification preferences of "targetChannel" to be "Mentions"', async () => { await poHomeChannel.sidenav.openChat(targetChannel); await poHomeChannel.tabs.kebab.click({ force: true }); diff --git a/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts b/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts index 200582a5a756..6a2dc1123ee6 100644 --- a/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts +++ b/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts @@ -15,6 +15,12 @@ export class HomeSidenav { ); } + get checkboxReadOnly(): Locator { + return this.page.locator( + '//*[@id="modal-root"]//*[contains(@class, "rcx-field") and contains(text(), "Read Only")]/../following-sibling::label/i', + ); + } + get inputChannelName(): Locator { return this.page.locator('#modal-root [data-qa="create-channel-modal"] [data-qa-type="channel-name-input"]'); }