Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.4k views
in Technique[技术] by (71.8m points)

javascript - Change async/await to Promise

I would like to change the following async/await code

const mongoose = require('mongoose')
const supertest = require('supertest')
const app = require('../app')

const api = supertest(app)

test("total number of blogs", async () => {
  const response = await api.get('/api/blogs')
  
  expect(response.body).toHaveLength(1)
})
      

afterAll(() => {
  mongoose.connection.close()
})

to a Promise like this:

const mongoose = require('mongoose')
const supertest = require('supertest')
const app = require('../app')

const api = supertest(app)

test("total number of blogs", () => {
  api.get('/api/blogs')
    .then( response => {
      expect(response.body).toHaveLength(1)
    })
})


afterAll(() => {
  mongoose.connection.close()
})

I could not manage to solve it correctly and I keep getting an error message: enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To clarify @jonrsharpe's comment you should return the promises from your test function:

test("total number of blogs", () => {
  return api.get('/api/blogs')
    .then( response => {
      expect(response.body).toHaveLength(1)
    })
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...