Why doesn't Jest complete the async operation(s) in this Node test?
I have the following simple test setup:
test('what did I do to deserve this', async () =>
expect.assertions(1)
const data = await fetchData() // or fetchData2
expect(data).toBe('peanut butter')
)
async function fetchData ()
return "peanut butter"
async function fetchData2 ()
return knex.select('name').from('foos')
When I use fetchData
jest finishes happily.
But when I use fetchData2
it complains of this:
Jest did not exit one second after the test run has completed.
This usually means that there are asynchronous operations that weren't
stopped in your tests. Consider running Jest with
--detectOpenHandles
to troubleshoot this issue.
The data variable does have the result from the db query, and other callers higher in the API resolve the query fine and continue the execution of other statements.
I have tried:
- the
--detectOpenHandles
flag but it doesn't show me anything. - making the expect pass for
fetchData2
in case it was the issue described here - passing a
done
arg to the async function intest
. It does exist, but calling it does not fix the warning. - throwing try/catch blocks at it
Thanks for any help on making this happy.
Versions of things:
- Node v11.1.0
- "jest": "^23.6.0"
- "knex": "^0.15.2"
node.js jestjs knex.js
add a comment |
I have the following simple test setup:
test('what did I do to deserve this', async () =>
expect.assertions(1)
const data = await fetchData() // or fetchData2
expect(data).toBe('peanut butter')
)
async function fetchData ()
return "peanut butter"
async function fetchData2 ()
return knex.select('name').from('foos')
When I use fetchData
jest finishes happily.
But when I use fetchData2
it complains of this:
Jest did not exit one second after the test run has completed.
This usually means that there are asynchronous operations that weren't
stopped in your tests. Consider running Jest with
--detectOpenHandles
to troubleshoot this issue.
The data variable does have the result from the db query, and other callers higher in the API resolve the query fine and continue the execution of other statements.
I have tried:
- the
--detectOpenHandles
flag but it doesn't show me anything. - making the expect pass for
fetchData2
in case it was the issue described here - passing a
done
arg to the async function intest
. It does exist, but calling it does not fix the warning. - throwing try/catch blocks at it
Thanks for any help on making this happy.
Versions of things:
- Node v11.1.0
- "jest": "^23.6.0"
- "knex": "^0.15.2"
node.js jestjs knex.js
add a comment |
I have the following simple test setup:
test('what did I do to deserve this', async () =>
expect.assertions(1)
const data = await fetchData() // or fetchData2
expect(data).toBe('peanut butter')
)
async function fetchData ()
return "peanut butter"
async function fetchData2 ()
return knex.select('name').from('foos')
When I use fetchData
jest finishes happily.
But when I use fetchData2
it complains of this:
Jest did not exit one second after the test run has completed.
This usually means that there are asynchronous operations that weren't
stopped in your tests. Consider running Jest with
--detectOpenHandles
to troubleshoot this issue.
The data variable does have the result from the db query, and other callers higher in the API resolve the query fine and continue the execution of other statements.
I have tried:
- the
--detectOpenHandles
flag but it doesn't show me anything. - making the expect pass for
fetchData2
in case it was the issue described here - passing a
done
arg to the async function intest
. It does exist, but calling it does not fix the warning. - throwing try/catch blocks at it
Thanks for any help on making this happy.
Versions of things:
- Node v11.1.0
- "jest": "^23.6.0"
- "knex": "^0.15.2"
node.js jestjs knex.js
I have the following simple test setup:
test('what did I do to deserve this', async () =>
expect.assertions(1)
const data = await fetchData() // or fetchData2
expect(data).toBe('peanut butter')
)
async function fetchData ()
return "peanut butter"
async function fetchData2 ()
return knex.select('name').from('foos')
When I use fetchData
jest finishes happily.
But when I use fetchData2
it complains of this:
Jest did not exit one second after the test run has completed.
This usually means that there are asynchronous operations that weren't
stopped in your tests. Consider running Jest with
--detectOpenHandles
to troubleshoot this issue.
The data variable does have the result from the db query, and other callers higher in the API resolve the query fine and continue the execution of other statements.
I have tried:
- the
--detectOpenHandles
flag but it doesn't show me anything. - making the expect pass for
fetchData2
in case it was the issue described here - passing a
done
arg to the async function intest
. It does exist, but calling it does not fix the warning. - throwing try/catch blocks at it
Thanks for any help on making this happy.
Versions of things:
- Node v11.1.0
- "jest": "^23.6.0"
- "knex": "^0.15.2"
node.js jestjs knex.js
node.js jestjs knex.js
asked Nov 12 '18 at 17:06
blublu
7,748135898
7,748135898
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
You need to call knex.destroy()
in the end of the test suite to teardown connection pool.
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266915%2fwhy-doesnt-jest-complete-the-async-operations-in-this-node-test%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You need to call knex.destroy()
in the end of the test suite to teardown connection pool.
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
add a comment |
You need to call knex.destroy()
in the end of the test suite to teardown connection pool.
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
add a comment |
You need to call knex.destroy()
in the end of the test suite to teardown connection pool.
You need to call knex.destroy()
in the end of the test suite to teardown connection pool.
answered Nov 12 '18 at 18:11
Mikael LepistöMikael Lepistö
7,00712728
7,00712728
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
add a comment |
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
Ahh, I see this ticket now github.com/Vincit/objection.js/issues/534. Ty
– blu
Nov 12 '18 at 18:16
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53266915%2fwhy-doesnt-jest-complete-the-async-operations-in-this-node-test%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown