system: add tests for fs usage route

This commit is contained in:
Girish Ramakrishnan
2025-07-17 01:16:24 +02:00
parent aa0c186c8c
commit 8bf8c278f0
9 changed files with 94 additions and 50 deletions

View File

@@ -6,12 +6,10 @@ const apps = require('../../apps.js'),
constants = require('../../constants.js'),
database = require('../../database.js'),
expect = require('expect.js'),
fs = require('fs'),
mailer = require('../../mailer.js'),
nock = require('nock'),
oidcClients = require('../../oidcclients.js'),
oidcServer = require('../../oidcserver.js'),
safe = require('safetydance'),
server = require('../../server.js'),
settings = require('../../settings.js'),
superagent = require('@cloudron/superagent'),
@@ -54,6 +52,7 @@ exports = module.exports = {
clearMailQueue,
checkMails,
waitForTask,
waitForAsyncTask,
owner: {
id: null,
@@ -179,6 +178,7 @@ async function cleanup() {
debug('Cleaning up');
await server.stop();
await oidcServer.stop();
if (!nock.isActive()) nock.activate();
debug('Cleaned up');
}
@@ -207,3 +207,25 @@ async function waitForTask(taskId) {
}
throw new Error(`Task ${taskId} never finished`);
}
async function waitForAsyncTask(es) {
return new Promise((resolve, reject) => {
const messages = [];
es.addEventListener('message', function (message) {
debug(`waitForAsyncTask: ${message.data}`);
messages.push(JSON.parse(message.data));
if (messages[messages.length-1].type === 'done') {
debug('waitForAsyncTask: finished');
es.close();
resolve(messages);
}
});
es.addEventListener('error', function (error) {
debug('waitForAsyncTask: errored', error);
es.close();
const e = new Error(error.message);
e.code = error.code;
reject(e);
});
});
}