mirror of
https://git.cloudron.io/cloudron/syncthing-app
synced 2026-06-10 06:35:49 +00:00
92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
|
|
import { app, clearCache, click, cloudronCli, goto, password, sendKeys, setupBrowser, takeScreenshot, teardownBrowser, username, waitFor } from '@cloudron/charlie';
|
|
|
|
/* global it, describe, before, after, afterEach */
|
|
|
|
describe('Application life cycle test', function () {
|
|
const FOLDER = 'xmf'; // keep small; long folder names fail in automation
|
|
const SYNC_PORT = 22001;
|
|
const adminUsername = 'admin';
|
|
const adminPassword = 'changeme';
|
|
|
|
before(setupBrowser);
|
|
after(teardownBrowser);
|
|
|
|
afterEach(async function () {
|
|
await takeScreenshot(this.currentTest);
|
|
});
|
|
|
|
async function login(uname, pass) {
|
|
await goto(`https://${app.fqdn}`, 'label=User');
|
|
await sendKeys('label=User', uname);
|
|
await sendKeys('label=Password', pass);
|
|
await click('Log In');
|
|
await waitFor('Actions');
|
|
}
|
|
|
|
async function loadPage() {
|
|
await goto(`https://${app.fqdn}`, 'Actions');
|
|
}
|
|
|
|
async function addFolder() {
|
|
await goto(`https://${app.fqdn}`, /Add Folder/);
|
|
await click(/Add Folder/);
|
|
await sendKeys('label=Folder Label', FOLDER);
|
|
await sendKeys('label=Folder Path', `/app/data/${FOLDER}`);
|
|
await click(/Save/);
|
|
await waitFor(FOLDER);
|
|
}
|
|
|
|
async function checkFolder() {
|
|
await goto(`https://${app.fqdn}`, FOLDER);
|
|
}
|
|
|
|
// NO SSO
|
|
it('install app (NO SSO)', () => cloudronCli.install({ noSso: true, tcpPortFlags: { SYNC_PORT } }));
|
|
|
|
it('can admin login', login.bind(null, adminUsername, adminPassword));
|
|
it('can load page', loadPage);
|
|
it('can add folder', addFolder);
|
|
it('can check folder', checkFolder);
|
|
|
|
it('uninstall app', cloudronCli.uninstall);
|
|
|
|
// SSO
|
|
it('install app (SSO)', () => cloudronCli.install({ noSso: false, tcpPortFlags: { SYNC_PORT } }));
|
|
|
|
it('can login', login.bind(null, username, password));
|
|
it('can load page', loadPage);
|
|
it('can add folder', addFolder);
|
|
it('can logout', clearCache);
|
|
|
|
it('backup app', cloudronCli.createBackup);
|
|
it('restore app', cloudronCli.restoreFromLatestBackup);
|
|
|
|
it('can login', login.bind(null, username, password));
|
|
it('can load page', loadPage);
|
|
it('can check folder', checkFolder);
|
|
it('can logout', clearCache);
|
|
|
|
it('move to different location', cloudronCli.changeLocation);
|
|
|
|
it('can login', login.bind(null, username, password));
|
|
it('can load page', loadPage);
|
|
it('can check folder', checkFolder);
|
|
it('can logout', clearCache);
|
|
|
|
it('uninstall app', cloudronCli.uninstall);
|
|
|
|
// test update
|
|
it('can install app for update', () => cloudronCli.appstoreInstall({ tcpPortFlags: { SYNC_PORT } }));
|
|
it('can login', login.bind(null, username, password));
|
|
it('can load page', loadPage);
|
|
it('can add folder', addFolder);
|
|
it('can logout', clearCache);
|
|
|
|
it('can update', cloudronCli.update);
|
|
it('can login', login.bind(null, username, password));
|
|
it('can check folder', checkFolder);
|
|
|
|
it('uninstall app', cloudronCli.uninstall);
|
|
});
|