1
0
Fork 0

renamed and fixed a test

This commit is contained in:
jsteemann 2019-09-23 18:17:17 +02:00
parent 0b8c75c7b7
commit dd9989a2e8
1 changed files with 31 additions and 42 deletions

View File

@ -1,5 +1,5 @@
/*jshint globalstrict:false, strict:false, maxlen: 400 */
/*global fail, assertEqual, AQL_EXECUTE, instanceInfo */
/*global fail, assertNotEqual, instanceInfo */
////////////////////////////////////////////////////////////////////////////////
/// @brief test failure scenarios
@ -67,31 +67,22 @@ const waitForJob = function (postJobRes) {
const start = Date.now();
let jobFinished = false;
let timeoutExceeded = false;
let putJobRes;
while (!jobFinished && !timeoutExceeded) {
while (true) {
const duration = (Date.now() - start) / 1000;
timeoutExceeded = duration > maxWaitTime;
if (duration > maxWaitTime) {
throw 'Waiting for REST job timed out';
}
putJobRes = request.put(coordinator.url + `/_api/job/${jobId}`);
let putJobRes = request.put(coordinator.url + `/_api/job/${jobId}`);
expect(putJobRes).to.have.property("status");
if (putJobRes.status === 204) {
wait(waitInterval);
wait(waitInterval, false);
} else {
jobFinished = true;
return putJobRes;
}
}
if (jobFinished) {
return putJobRes;
}
console.error(`Waiting for REST job timed out`);
return undefined;
};
////////////////////////////////////////////////////////////////////////////////
@ -101,25 +92,24 @@ const waitForJob = function (postJobRes) {
function databaseFailureSuite() {
'use strict';
var dn = "FailureDatabase";
var d;
return {
setUp: function () {
internal.debugClearFailAt();
db._useDatabase('_system');
try {
db._dropDatabase(dn);
} catch (ignore) {
}
/*
d = db._createDatabase(dn);
*/
},
tearDown: function () {
d = null;
internal.debugClearFailAt();
db._useDatabase('_system');
try {
db._dropDatabase(dn);
} catch (err) {}
},
////////////////////////////////////////////////////////////////////////////////
@ -128,20 +118,9 @@ function databaseFailureSuite() {
////////////////////////////////////////////////////////////////////////////////
testHideDatabaseUntilCreationIsFinished: function () {
expectedSystemCollections.sort();
// this will trigger an internal sleep of 5 seconds during db creation
internal.debugSetFailAt("UpgradeTasks::HideDatabaseUntilCreationIsFinished");
// create the db async, with job API
const postJobRes = request.post(
coordinator.url + '/_api/database',
{
headers: {"x-arango-async": "store"},
body: {"name": dn}
}
);
// this should fail now
try {
db._useDatabase(dn);
@ -149,6 +128,16 @@ function databaseFailureSuite() {
} catch (err) {
}
// create the db async, with job API
const postJobRes = request.post(
coordinator.url + '/_api/database',
{
headers: {"x-arango-async": "store"},
body: {"name": dn},
json: true
}
);
// wait until database creation is finished
const jobRes = waitForJob(postJobRes);
@ -159,26 +148,26 @@ function databaseFailureSuite() {
db._collections().forEach(function (collection) {
availableCollections.push(collection.name());
});
availableCollections.sort();
assertEqual(expectedSystemCollections, availableCollections);
expectedSystemCollections.forEach(function(name) {
assertNotEqual(-1, availableCollections.indexOf(name));
});
},
testDatabaseSomeExisting: function () {
expectedSystemCollections.sort();
internal.debugSetFailAt("UpgradeTasks::CreateCollectionsExistsGraphAqlFunctions");
d = db._createDatabase(dn);
db._createDatabase(dn);
db._useDatabase(dn);
let availableCollections = [];
db._collections().forEach(function (collection) {
availableCollections.push(collection.name());
});
availableCollections.sort();
assertEqual(expectedSystemCollections, availableCollections);
expectedSystemCollections.forEach(function(name) {
assertNotEqual(-1, availableCollections.indexOf(name));
});
},
};