owncast/test/automated/browser/tests/chat.js

58 lines
1.7 KiB
JavaScript

async function interactiveChatTest(
browser,
page,
newName,
chatMessage,
device
) {
it('should have the chat input', async () => {
await page.waitForSelector('#message-input');
});
it('should have the chat input enabled', async () => {
const isDisabled = await page.evaluate(
'document.querySelector("#message-input").getAttribute("disabled")'
);
expect(isDisabled).not.toBe('true');
});
it('should have the username label', async () => {
await page.waitForSelector('#username-display');
});
it('should allow changing the username on ' + device, async () => {
await page.waitForSelector('#username-display');
await page.evaluate(() =>
document.querySelector('#username-display').click()
);
await page.waitForSelector('#username-change-input');
await page.evaluate(() =>
document.querySelector('#username-change-input').click()
);
await page.evaluate(() =>
document.querySelector('#username-change-input').click()
);
await page.type('#username-change-input', newName);
await page.waitForSelector('#button-update-username');
await page.evaluate(() =>
document.querySelector('#button-update-username').click()
);
// page.keyboard.press('Enter');
await page.waitForTimeout(3000);
});
it('should allow typing a chat message', async () => {
await page.waitForSelector('#message-input');
await page.evaluate(() => document.querySelector('#message-input').click());
await page.waitForTimeout(1000);
await page.focus('#message-input');
await page.keyboard.type(chatMessage);
page.keyboard.press('Enter');
});
}
module.exports.interactiveChatTest = interactiveChatTest;