Skip to content
Snippets Groups Projects
Unverified Commit ea01ad2c authored by Varac's avatar Varac
Browse files

Run app tests with taiko without SSO

parent e3cdfa87
No related branches found
No related tags found
No related merge requests found
const { openBrowser, goto, textBox, into, write, click, toRightOf, below, link, press, image, waitFor, closeBrowser, screenshot } = require('taiko');
const assert = require('assert');
(async () => {
try {
const taikoTests = process.env.TAIKO_TESTS || 'all'
const domain = process.env.DOMAIN
const globalTimeout = 60000
// https://docs.taiko.dev/api/setconfig/
// setConfig( { observeTime: 1000});
setConfig( { observeTime: 0, navigationTimeout: globalTimeout });
console.log('Executing these tests: ' + taikoTests)
await openBrowser()
// await screencast.startScreencast('output.gif')
// Wait for manual screencast recording
// await waitFor(5000)
// Nextcloud
if (taikoTests.includes('nextcloud') || taikoTests === 'all') {
const nextcloudUrl = 'https://files.' + domain
const nextcloudUsername = process.env.NEXTCLOUD_USERNAME || 'admin'
const nextcloudPassword = process.env.NEXTCLOUD_PASSWORD
console.log('• Nextcloud and Onlyoffice')
await goto(nextcloudUrl)
await write(nextcloudUsername, into(textBox('Username')))
await write(nextcloudPassword, into(textBox('Password')))
await click('Log in')
// Close potential nextcloud modal
await press('Escape')
// Open document and type some text
await click(link(), above('Add notes'))
await click('Document')
await press('Enter')
let italicButtonId = '#id-toolbar-btn-italic'
await waitFor($(italicButtonId), globalTimeout)
// Activate italic button
let buttonStateBefore = await evaluate($(italicButtonId), (elem) => {return elem.getAttribute('class')})
await assert.ok(!buttonStateBefore.includes('active'))
await click($(italicButtonId))
let buttonStateAfter = await evaluate($(italicButtonId), (elem) => {return elem.getAttribute('class')})
await assert.ok(buttonStateAfter.includes('active'))
await press(['H', 'i', ' ', 'f', 'r', 'o', 'm', ' ', 't', 'a', 'i', 'k', 'o', '!', 'Enter'])
// Deactivate italic finially
await click($(italicButtonId))
await closeTab()
}
// Rocketchat
if (taikoTests.includes('rocketchat') || taikoTests === 'all') {
const rocketchatUrl = 'https://chat.' + domain
const rocketchatUsername = process.env.ROCKETCHAT_USERNAME || 'admin'
const rocketchatPassword = process.env.ROCKETCHAT_PASSWORD
console.log('• Rocketchat')
await goto(rocketchatUrl)
await write(rocketchatUsername, into(textBox('Username')))
await write(rocketchatPassword, into(textBox('Password')))
await click('Login')
await waitFor('Welcome to Rocket.Chat!')
}
// Wordpress
if (taikoTests.includes('wordpress') || taikoTests === 'all') {
const wordpressUrl = 'https://www.' + domain
const wordpressUsername = process.env.WORDPRESS_USERNAME || 'admin'
const wordpressPassword = process.env.WORDPRESS_PASSWORD
console.log('• Wordpress')
await goto(wordpressUrl)
await click('Log in')
await write(wordpressUsername, into(textBox('Username')))
await write(wordpressPassword, into(textBox('Password')))
await click('Log in')
await assert.ok(await link('Dashboard').exists())
}
// Grafana
if (taikoTests.includes('grafana') || taikoTests === 'all') {
const grafanaUrl = 'https://grafana.' + domain
const grafanaUsername = process.env.GRAFANA_USERNAME || 'admin'
const grafanaPassword = process.env.GRAFANA_PASSWORD
console.log('• Grafana')
await goto(grafanaUrl)
await write(grafanaUsername, into(textBox('Username')))
await write(grafanaPassword, into(textBox('Password')))
await click('Log in')
// Node exporter dashboard
// Couldn't select "Manage dashboards" from the sidebar menu easily,
// so we just go there
await goto(grafanaUrl + '/dashboards')
await click(link('Nodes'))
await('CPU Usage')
// Explore Loki log messages
await goto(grafanaUrl + '/explore')
await click(image(toRightOf('Explore')))
await click('Loki')
await click('Log browser')
await click('app')
await click('cert-manager')
await click('grafana')
await click('Show logs')
}
} catch (error) {
await screenshot()
// await screencast.stopScreencast()
console.error(error)
process.exitCode = 1
} finally {
// await screencast.stopScreencast()
await closeBrowser()
}
})()
......@@ -71,7 +71,7 @@ const assert = require('assert');
// Navigate to rocketchat
// Breaks because of 2fa challenge which is not recieved
// by email
// TODO: Create issue
// https://open.greenhost.net/openappstack/openappstack/-/issues/819
// await click(link(below('rocketchat')));
// await click('Login via OpenAppStack');
// await click('Continue with ' + username)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment