Expected one assertion to be called but received zero
up vote
0
down vote
favorite
I'm struggling with Jest, I just can't get it to work properly.
Function I wanna test:
fetchPosts() {
return new Promise((resolve, reject) => {
Posts.find({}).then(posts => {
if (posts) {
resolve(posts)
} else {
reject("NOOOO")
}
})
})
}
Test:
describe('fetching posts', () => {
it('should get a list of posts in Array format', () => {
expect.assertions(1);
const result = posts.fetchPosts();
return expect(result).resolves.toEqual(expect.any(Array));
})
})
The fetchPosts function does return the whole list of posts. How can I make my test pass?
javascript node.js unit-testing jestjs
|
show 8 more comments
up vote
0
down vote
favorite
I'm struggling with Jest, I just can't get it to work properly.
Function I wanna test:
fetchPosts() {
return new Promise((resolve, reject) => {
Posts.find({}).then(posts => {
if (posts) {
resolve(posts)
} else {
reject("NOOOO")
}
})
})
}
Test:
describe('fetching posts', () => {
it('should get a list of posts in Array format', () => {
expect.assertions(1);
const result = posts.fetchPosts();
return expect(result).resolves.toEqual(expect.any(Array));
})
})
The fetchPosts function does return the whole list of posts. How can I make my test pass?
javascript node.js unit-testing jestjs
Since the result is a promise, did you try usingawait, something likeawait expect(result).resolves.any(Array)?
– Lucas Costa
Nov 21 at 13:25
What version of node are you using?
– iagowp
Nov 21 at 13:26
What your test is displaying when you run it?
– iagowp
Nov 21 at 13:28
The fetchPosts function does return the whole list of posts. - what does it return? What's error message? The problem depends on the contents of your database, doesn't it?fetchPostsuses promise construction antipattern. It will result in pending promise in case there's no posts.
– estus
Nov 21 at 13:29
jestjs.io/docs/en/asynchronous.html
– Jared Goguen
Nov 21 at 13:30
|
show 8 more comments
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm struggling with Jest, I just can't get it to work properly.
Function I wanna test:
fetchPosts() {
return new Promise((resolve, reject) => {
Posts.find({}).then(posts => {
if (posts) {
resolve(posts)
} else {
reject("NOOOO")
}
})
})
}
Test:
describe('fetching posts', () => {
it('should get a list of posts in Array format', () => {
expect.assertions(1);
const result = posts.fetchPosts();
return expect(result).resolves.toEqual(expect.any(Array));
})
})
The fetchPosts function does return the whole list of posts. How can I make my test pass?
javascript node.js unit-testing jestjs
I'm struggling with Jest, I just can't get it to work properly.
Function I wanna test:
fetchPosts() {
return new Promise((resolve, reject) => {
Posts.find({}).then(posts => {
if (posts) {
resolve(posts)
} else {
reject("NOOOO")
}
})
})
}
Test:
describe('fetching posts', () => {
it('should get a list of posts in Array format', () => {
expect.assertions(1);
const result = posts.fetchPosts();
return expect(result).resolves.toEqual(expect.any(Array));
})
})
The fetchPosts function does return the whole list of posts. How can I make my test pass?
javascript node.js unit-testing jestjs
javascript node.js unit-testing jestjs
edited Nov 21 at 13:20
chazsolo
4,9271232
4,9271232
asked Nov 21 at 13:17
mokiliii Lo
4718
4718
Since the result is a promise, did you try usingawait, something likeawait expect(result).resolves.any(Array)?
– Lucas Costa
Nov 21 at 13:25
What version of node are you using?
– iagowp
Nov 21 at 13:26
What your test is displaying when you run it?
– iagowp
Nov 21 at 13:28
The fetchPosts function does return the whole list of posts. - what does it return? What's error message? The problem depends on the contents of your database, doesn't it?fetchPostsuses promise construction antipattern. It will result in pending promise in case there's no posts.
– estus
Nov 21 at 13:29
jestjs.io/docs/en/asynchronous.html
– Jared Goguen
Nov 21 at 13:30
|
show 8 more comments
Since the result is a promise, did you try usingawait, something likeawait expect(result).resolves.any(Array)?
– Lucas Costa
Nov 21 at 13:25
What version of node are you using?
– iagowp
Nov 21 at 13:26
What your test is displaying when you run it?
– iagowp
Nov 21 at 13:28
The fetchPosts function does return the whole list of posts. - what does it return? What's error message? The problem depends on the contents of your database, doesn't it?fetchPostsuses promise construction antipattern. It will result in pending promise in case there's no posts.
– estus
Nov 21 at 13:29
jestjs.io/docs/en/asynchronous.html
– Jared Goguen
Nov 21 at 13:30
Since the result is a promise, did you try using
await, something like await expect(result).resolves.any(Array)?– Lucas Costa
Nov 21 at 13:25
Since the result is a promise, did you try using
await, something like await expect(result).resolves.any(Array)?– Lucas Costa
Nov 21 at 13:25
What version of node are you using?
– iagowp
Nov 21 at 13:26
What version of node are you using?
– iagowp
Nov 21 at 13:26
What your test is displaying when you run it?
– iagowp
Nov 21 at 13:28
What your test is displaying when you run it?
– iagowp
Nov 21 at 13:28
The fetchPosts function does return the whole list of posts. - what does it return? What's error message? The problem depends on the contents of your database, doesn't it?
fetchPosts uses promise construction antipattern. It will result in pending promise in case there's no posts.– estus
Nov 21 at 13:29
The fetchPosts function does return the whole list of posts. - what does it return? What's error message? The problem depends on the contents of your database, doesn't it?
fetchPosts uses promise construction antipattern. It will result in pending promise in case there's no posts.– estus
Nov 21 at 13:29
jestjs.io/docs/en/asynchronous.html
– Jared Goguen
Nov 21 at 13:30
jestjs.io/docs/en/asynchronous.html
– Jared Goguen
Nov 21 at 13:30
|
show 8 more comments
1 Answer
1
active
oldest
votes
up vote
0
down vote
Your fetchPost function is asynchronous. To make it work in your test you need to change some things.
Add 'async' to your test
it('should get a list of posts in Array format', async () => {...})
Add 'await' before you call your async function
You need to
expect()the result you want to get back from your function without the return statement.
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
Your fetchPost function is asynchronous. To make it work in your test you need to change some things.
Add 'async' to your test
it('should get a list of posts in Array format', async () => {...})
Add 'await' before you call your async function
You need to
expect()the result you want to get back from your function without the return statement.
add a comment |
up vote
0
down vote
Your fetchPost function is asynchronous. To make it work in your test you need to change some things.
Add 'async' to your test
it('should get a list of posts in Array format', async () => {...})
Add 'await' before you call your async function
You need to
expect()the result you want to get back from your function without the return statement.
add a comment |
up vote
0
down vote
up vote
0
down vote
Your fetchPost function is asynchronous. To make it work in your test you need to change some things.
Add 'async' to your test
it('should get a list of posts in Array format', async () => {...})
Add 'await' before you call your async function
You need to
expect()the result you want to get back from your function without the return statement.
Your fetchPost function is asynchronous. To make it work in your test you need to change some things.
Add 'async' to your test
it('should get a list of posts in Array format', async () => {...})
Add 'await' before you call your async function
You need to
expect()the result you want to get back from your function without the return statement.
answered Nov 22 at 13:32
Fabian Hinsenkamp
1615
1615
add a comment |
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.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- 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%2f53412925%2fexpected-one-assertion-to-be-called-but-received-zero%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
Since the result is a promise, did you try using
await, something likeawait expect(result).resolves.any(Array)?– Lucas Costa
Nov 21 at 13:25
What version of node are you using?
– iagowp
Nov 21 at 13:26
What your test is displaying when you run it?
– iagowp
Nov 21 at 13:28
The fetchPosts function does return the whole list of posts. - what does it return? What's error message? The problem depends on the contents of your database, doesn't it?
fetchPostsuses promise construction antipattern. It will result in pending promise in case there's no posts.– estus
Nov 21 at 13:29
jestjs.io/docs/en/asynchronous.html
– Jared Goguen
Nov 21 at 13:30