71 lines
2.1 KiB
JavaScript
71 lines
2.1 KiB
JavaScript
const assert = require('assert');
|
|
const crypto = require('crypto');
|
|
|
|
function addBuilderForReport(report)
|
|
{
|
|
return TestServer.database().insert('builders', {
|
|
name: report.builderName,
|
|
password_hash: crypto.createHash('sha256').update(report.builderPassword).digest('hex')
|
|
});
|
|
}
|
|
|
|
function addWorkerForReport(report)
|
|
{
|
|
return TestServer.database().insert('build_workers', {
|
|
name: report.workerName,
|
|
password_hash: crypto.createHash('sha256').update(report.workerPassword).digest('hex')
|
|
});
|
|
}
|
|
|
|
function prepareServerTest(test, privilegedAPIType='browser')
|
|
{
|
|
test.timeout(5000);
|
|
TestServer.inject(privilegedAPIType);
|
|
|
|
beforeEach(async function () {
|
|
const database = TestServer.database();
|
|
if (typeof(MockData) != 'undefined')
|
|
MockData.resetV3Models();
|
|
await database.connect({keepAlive: true});
|
|
if (privilegedAPIType === 'browser')
|
|
return;
|
|
const entry = await TestServer.database().selectFirstRow('build_workers', {name: 'test'});
|
|
if (!entry)
|
|
await addWorkerForReport({workerName: 'test', workerPassword: 'password'});
|
|
});
|
|
|
|
afterEach(function () {
|
|
TestServer.database().disconnect();
|
|
});
|
|
}
|
|
|
|
function submitReport(report)
|
|
{
|
|
return TestServer.database().insert('builders', {
|
|
name: report[0].builderName,
|
|
password_hash: crypto.createHash('sha256').update(report[0].builderPassword).digest('hex')
|
|
}).then(function () {
|
|
return TestServer.remoteAPI().postJSON('/api/report/', report);
|
|
});
|
|
}
|
|
|
|
async function assertThrows(expectedError, testFunction)
|
|
{
|
|
let thrownException = false;
|
|
try {
|
|
await testFunction();
|
|
} catch(error) {
|
|
thrownException = true;
|
|
assert.strictEqual(error, expectedError);
|
|
}
|
|
assert.ok(thrownException);
|
|
}
|
|
|
|
if (typeof module != 'undefined') {
|
|
module.exports.addBuilderForReport = addBuilderForReport;
|
|
module.exports.addWorkerForReport = addWorkerForReport;
|
|
module.exports.prepareServerTest = prepareServerTest;
|
|
module.exports.submitReport = submitReport;
|
|
module.exports.assertThrows = assertThrows;
|
|
}
|