From 343c4f4487760416b86c82cf6e2922af54d87978 Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Thu, 9 Jan 2025 12:17:46 +0100 Subject: [PATCH] Fix tests --- test/test.js | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/test/test.js b/test/test.js index ba1a57c..c9d5679 100755 --- a/test/test.js +++ b/test/test.js @@ -29,7 +29,6 @@ describe('Application life cycle test', function () { const SSH_PORT = 29420; let app, browser; - let athenticated_by_oidc = false; const repodir = '/tmp/testrepo'; const reponame = 'testrepo'; @@ -108,7 +107,7 @@ describe('Application life cycle test', function () { await login('root', 'changeme'); } - async function loginOIDC(username, password) { + async function loginOIDC(username, password, alreadyAuthenticated = true) { browser.manage().deleteAllCookies(); await browser.get(`https://${app.fqdn}/user/login`); await browser.sleep(2000); @@ -117,15 +116,13 @@ describe('Application life cycle test', function () { await browser.findElement(By.xpath('//a[contains(@class, "openidConnect") and contains(., "Sign in with cloudron")]')).click(); await browser.sleep(2000); - if (!athenticated_by_oidc) { - await waitForElement(By.xpath('//input[@name="username"]')); - await browser.findElement(By.xpath('//input[@name="username"]')).sendKeys(username); - await browser.findElement(By.xpath('//input[@name="password"]')).sendKeys(password); + if (!alreadyAuthenticated) { + await waitForElement(By.id('inputUsername')); + await browser.findElement(By.id('inputUsername')).sendKeys(username); + await browser.findElement(By.id('inputPassword')).sendKeys(password); await browser.sleep(2000); await browser.findElement(By.id('loginSubmitButton')).click(); await browser.sleep(2000); - - athenticated_by_oidc = true; } await waitForElement(By.xpath('//img[contains(@class, "avatar")]')); @@ -173,14 +170,6 @@ describe('Application life cycle test', function () { }, TIMEOUT); } - async function checkCloneUrl() { - await browser.get('https://' + app.fqdn + '/' + username + '/' + reponame); - await browser.findElement(By.id('repo-clone-ssh')).click(); - - var cloneUrl = await browser.findElement(By.id('repo-clone-url')).getAttribute('value'); - expect(cloneUrl).to.be(`ssh://git@${app.fqdn}:${SSH_PORT}/${username}/${reponame}.git`); - } - function cloneRepo() { fs.rmSync(repodir, { recursive: true, force: true }); var env = Object.create(process.env); @@ -201,13 +190,13 @@ describe('Application life cycle test', function () { } async function sendMail() { - await browser.get(`https://${app.fqdn}/admin/config`); - - var button = await browser.findElement(By.xpath('//button[contains(text(), "Send")]')); + await browser.get(`https://${app.fqdn}/-/admin/config`); + await browser.sleep(3000); + const button = await browser.findElement(By.xpath('//button[contains(., "Send")]')); await browser.executeScript('arguments[0].scrollIntoView(true)', button); await browser.findElement(By.xpath('//input[@name="email"]')).sendKeys('test@cloudron.io'); - await browser.findElement(By.xpath('//button[contains(text(), "Send")]')).click(); - await browser.wait(until.elementLocated(By.xpath('//p[contains(text(), "A testing email has been sent")]')), TIMEOUT); + await browser.findElement(By.xpath('//button[contains(., "Send")]')).click(); + await browser.wait(until.elementLocated(By.xpath('//p[contains(., "A testing email has been sent")]')), TIMEOUT); } xit('build app', function () { execSync('cloudron build', EXEC_ARGS); }); @@ -219,7 +208,7 @@ describe('Application life cycle test', function () { it('can send mail', sendMail); it('can logout', logout); - it('can login', loginOIDC.bind(null, username, password)); + it('can login', loginOIDC.bind(null, username, password, false)); it('can set avatar', setAvatar); it('can get avatar', checkAvatar); @@ -227,8 +216,6 @@ describe('Application life cycle test', function () { it('can create repo', createRepo); - it('displays correct clone url', checkCloneUrl); - it('can clone the url', cloneRepo); it('can add and push a file', pushFile); @@ -236,7 +223,6 @@ describe('Application life cycle test', function () { it('can restart app', function () { execSync('cloudron restart --app ' + app.id); }); xit('can login', loginOIDC.bind(null, username, password)); // no need to relogin since session persists - it('displays correct clone url', checkCloneUrl); it('can clone the url', cloneRepo); it('file exists in repo', fileExists); @@ -259,7 +245,6 @@ describe('Application life cycle test', function () { it('can login', loginOIDC.bind(null, username, password)); it('can get avatar', checkAvatar); - it('displays correct clone url', checkCloneUrl); it('can clone the url', cloneRepo); it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(true); });