1
0
mirror of https://git.cloudron.io/cloudron/syncthing-app synced 2026-06-10 06:35:49 +00:00
Files
syncthing-app/test/test.js
T
Girish Ramakrishnan 8cf30550e3 fix tests
2026-05-12 12:14:49 +02:00

93 lines
3.0 KiB
JavaScript

#!/usr/bin/env node
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);
});