From 20c512c8a90f2653458e1c4cf4b02df2a266977c Mon Sep 17 00:00:00 2001 From: webzwo0i Date: Sun, 18 Apr 2021 00:50:35 +0200 Subject: [PATCH] test for await db.set in createAuthor --- src/tests/backend/specs/regression-db.js | 31 ++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/tests/backend/specs/regression-db.js diff --git a/src/tests/backend/specs/regression-db.js b/src/tests/backend/specs/regression-db.js new file mode 100644 index 000000000..221193c3b --- /dev/null +++ b/src/tests/backend/specs/regression-db.js @@ -0,0 +1,31 @@ +'use strict'; + +const AuthorManager = require('../../../node/db/AuthorManager'); +const assert = require('assert').strict; +const common = require('../common'); +const db = require('../../../node/db/DB'); + +describe(__filename, function () { + let setBackup; + + before(async function () { + await common.init(); + setBackup = db.set; + + db.set = async (...args) => { + // delay db.set + await new Promise((resolve) => { setTimeout(() => resolve(), 500); }); + return await setBackup.call(db, ...args); + }; + }); + + after(async function () { + db.set = setBackup; + }); + + it('regression test for missing await in createAuthor (#5000)', async function () { + this.timeout(700); + const {authorID} = await AuthorManager.createAuthor(); // Should block until db.set() finishes. + assert(await AuthorManager.doesAuthorExist(authorID)); + }); +});