owncast/test/automated/browser/tests/chat.js
Gabe Kangas cc6b257470
Automated browser testing (#1415)
* Move automated api tests to api directory

* First pass at automated browser testing
2021-09-17 14:04:09 -07:00

42 lines
1.6 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.type('#username-change-input', 'a new name');
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())
});
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;