diff --git a/scripts/pit/its/cc-identity-management.js b/scripts/pit/its/cc-identity-management.js index 3c8180b..6b09a19 100644 --- a/scripts/pit/its/cc-identity-management.js +++ b/scripts/pit/its/cc-identity-management.js @@ -34,7 +34,6 @@ const {log, err, args, createPage, closePage, takeScreenshot, waitForServerReady log(`Checking that ${app} installed in ${url} is running ...\n`); - log(`Enabling identity Management ...\n`); await page.locator('vaadin-select vaadin-input-container div').click(); await page.getByRole('option', { name: app }).locator('div').nth(2).click(); await takeScreenshot(page, __filename, 'selected-app'); @@ -45,15 +44,29 @@ const {log, err, args, createPage, closePage, takeScreenshot, waitForServerReady await takeScreenshot(pageApp, __filename, 'app-running'); await closePage(pageApp); // Button is enabled after app is running, let's see + log(`Enabling identity Management ...\n`); await page.getByRole('link', { name: 'Identity Management' }).click(); await takeScreenshot(page, __filename, 'identity-link-clicked'); try { + await page.waitForTimeout(2000); await page.getByRole('button', { name: 'Enable Identity Management' }).click(); } catch (error) { - err(`Retrying in 60 secs looking for enabled button : ${error}\n`); - await page.waitForTimeout(60000); - await page.reload(); - await page.getByRole('button', { name: 'Enable Identity Management' }).click(); + try { + await page.getByRole('link', { name: 'Settings' }).click(); + await page.waitForTimeout(2000); + await page.locator('vaadin-grid').getByText('bakery-cc', { exact: true }).click(); + await page.getByLabel('Identity Management').check(); + await page.getByRole('button', { name: 'Update' }).click(); + await page.locator('vaadin-select vaadin-input-container div').click(); + await page.getByRole('option', { name: app }).locator('div').nth(2).click(); + await page.getByRole('link', { name: 'Identity Management' }).click(); + } catch (error) { + err(`Retrying in 60 secs looking for enabled button : ${error}\n`); + await page.waitForTimeout(60000); + await page.reload(); + await page.getByRole('link', { name: 'Identity Management' }).click(); + await page.getByRole('button', { name: 'Enable Identity Management' }).click(); + } } await takeScreenshot(page, __filename, 'identity-enabled'); diff --git a/scripts/pit/its/test-utils.js b/scripts/pit/its/test-utils.js index a2f527d..7861d04 100644 --- a/scripts/pit/its/test-utils.js +++ b/scripts/pit/its/test-utils.js @@ -21,7 +21,7 @@ function warn(...args) { process.stderr.write(`\x1b[2m\x1b[91m${args}\x1b[0m`); } function err(...args) { - process.stderr.write(`\x1b[0;31m${args}\x1b[0m`); + process.stderr.write(`\x1b[0;31m${args}\x1b[0m`.split('\n')[0] + '\n'); } const run = async (cmd) => (await promisify(exec)(cmd)).stdout; @@ -87,7 +87,7 @@ async function takeScreenshot(page, name, descr) { const scr = path.basename(name); const cnt = String(++sscount).padStart(2, "0"); const file = `${screenshots}/${scr}-${cnt}-${descr}.png`; - await page.waitForTimeout(/^win/.test(process.platform) ? 10000: 1500); + await page.waitForTimeout(/^win/.test(process.platform) ? 10000 : process.env.GITHUB_ACTIONS ? 5000 : 1500); await page.screenshot({ path: file }); out(` 📸 Screenshot taken: ${file}\n`); }