2021-02-07 11:32:57 +00:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
describe('Admin > Settings', function () {
|
|
|
|
this.timeout(480000);
|
|
|
|
|
|
|
|
before(async function () {
|
|
|
|
let success = false;
|
|
|
|
$.ajax({
|
|
|
|
url: `${location.protocol}//admin:changeme@${location.hostname}:${location.port}/admin/`,
|
|
|
|
type: 'GET',
|
|
|
|
success: () => success = true,
|
|
|
|
});
|
|
|
|
await helper.waitForPromise(() => success === true);
|
|
|
|
});
|
|
|
|
|
|
|
|
beforeEach(async function () {
|
|
|
|
helper.newAdmin('settings');
|
|
|
|
// needed, because the load event is fired to early
|
2021-02-12 20:04:42 +00:00
|
|
|
await helper.waitForPromise(
|
|
|
|
() => helper.admin$ && helper.admin$('.settings').val().length > 0, 5000);
|
2021-02-07 11:32:57 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('Are Settings visible, populated, does save work', async function () {
|
2021-07-19 21:42:38 +02:00
|
|
|
const save = async () => {
|
|
|
|
const p = new Promise((resolve) => {
|
|
|
|
const observer = new MutationObserver(() => { resolve(); observer.disconnect(); });
|
|
|
|
observer.observe(
|
|
|
|
helper.admin$('#response')[0], {attributes: true, childList: false, subtree: false});
|
|
|
|
});
|
|
|
|
helper.admin$('#saveSettings').click();
|
|
|
|
await p;
|
|
|
|
};
|
|
|
|
|
2021-02-07 11:32:57 +00:00
|
|
|
// save old value
|
|
|
|
const settings = helper.admin$('.settings').val();
|
|
|
|
const settingsLength = settings.length;
|
|
|
|
|
|
|
|
// set new value
|
|
|
|
helper.admin$('.settings').val((_, text) => `/* test */\n${text}`);
|
|
|
|
await helper.waitForPromise(
|
2021-02-12 20:04:42 +00:00
|
|
|
() => settingsLength + 11 === helper.admin$('.settings').val().length, 5000);
|
2021-07-19 21:42:38 +02:00
|
|
|
await save();
|
2021-02-07 11:32:57 +00:00
|
|
|
|
|
|
|
// new value for settings.json should now be saved
|
|
|
|
// reset it to the old value
|
|
|
|
helper.newAdmin('settings');
|
2021-02-12 20:04:42 +00:00
|
|
|
await helper.waitForPromise(
|
2021-07-16 20:46:04 +02:00
|
|
|
() => helper.admin$ &&
|
|
|
|
helper.admin$('.settings').val().length === settingsLength + 11, 20000);
|
2021-02-07 11:32:57 +00:00
|
|
|
|
|
|
|
// replace the test value with a line break
|
|
|
|
helper.admin$('.settings').val((_, text) => text.replace('/* test */\n', ''));
|
|
|
|
await helper.waitForPromise(() => settingsLength === helper.admin$('.settings').val().length);
|
2021-07-19 21:42:38 +02:00
|
|
|
await save();
|
2021-02-07 11:32:57 +00:00
|
|
|
|
|
|
|
// settings should have the old value
|
|
|
|
helper.newAdmin('settings');
|
|
|
|
await helper.waitForPromise(
|
2021-07-16 20:46:04 +02:00
|
|
|
() => helper.admin$ && helper.admin$('.settings').val().length === settingsLength &&
|
|
|
|
settings === helper.admin$('.settings').val(), 20000);
|
2021-02-07 11:32:57 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
it('restart works', async function () {
|
2021-02-14 02:50:10 -05:00
|
|
|
const getStartTime = async () => {
|
2021-02-13 01:43:08 -05:00
|
|
|
try {
|
2021-02-14 02:50:10 -05:00
|
|
|
const {httpStartTime} = await $.ajax({
|
2021-02-13 01:43:08 -05:00
|
|
|
url: new URL('/stats', window.location.href),
|
|
|
|
method: 'GET',
|
|
|
|
dataType: 'json',
|
|
|
|
timeout: 450, // Slightly less than the waitForPromise() interval.
|
|
|
|
});
|
2021-02-14 02:50:10 -05:00
|
|
|
return httpStartTime;
|
2021-02-13 01:43:08 -05:00
|
|
|
} catch (err) {
|
2021-07-16 20:46:04 +02:00
|
|
|
document.getElementById('console').append(
|
|
|
|
`an error occurred: ${err.message} of type ${err.name}\n`);
|
2021-02-13 01:43:08 -05:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
};
|
2021-07-16 20:46:04 +02:00
|
|
|
let oldStartTime;
|
2021-02-13 01:43:08 -05:00
|
|
|
await helper.waitForPromise(async () => {
|
2021-07-16 20:46:04 +02:00
|
|
|
oldStartTime = await getStartTime();
|
|
|
|
return oldStartTime != null && oldStartTime > 0;
|
2021-02-13 01:43:08 -05:00
|
|
|
}, 1000, 500);
|
2021-02-07 11:32:57 +00:00
|
|
|
helper.admin$('#restartEtherpad').click();
|
2021-02-13 01:43:08 -05:00
|
|
|
await helper.waitForPromise(async () => {
|
2021-02-14 02:50:10 -05:00
|
|
|
const startTime = await getStartTime();
|
2021-07-16 20:46:04 +02:00
|
|
|
return startTime != null && startTime > oldStartTime;
|
2021-02-13 01:43:08 -05:00
|
|
|
}, 60000, 500);
|
2021-02-07 11:32:57 +00:00
|
|
|
});
|
|
|
|
});
|