Мой внутренний код использует Node.js, Express и PostgreSQL для создания базы данных, в которой пользователи могут создавать учетную запись, а затем создавать «события» в своем календаре.
Я борюсь с интеграционным тестированием (через mocha), потому что я не уверен, как добавить создание учетной записи и вход в конечную точку тестирования моих API.
Я пробовал функции asyn c для создания пользователя, а затем войти как нового пользователя, но мой синтаксис должен быть отключен. Я также не знаю, как поместить это в свой тест.
Моя функция asyn c выглядит так:
let userLogin = async() => {
let newUser = await fetch(`${config.API_ENDPOINT}/api/users`, {
method: 'POST',
body: JSON.stringify({
account_name: testUser.account_name,
account_password: testUser.account_password
}),
headers: {
'Content-type':'application/json'
}
})
let loginResponse = await fetch(`${config.API_ENDPOINT}/api/auth/login`, {
method: 'POST',
body: JSON.stringify({
account_name: testUser.account_name,
account_password: testUser.account_password
}),
headers: {
'Content-type': 'application/json'
}
})
token = await loginResponse.json();
token = token.authToken;
return token;
}
Один из моих тестов, требующий токен-носителя из зарегистрированного in user:
it('POST /api/login responds with 201', () => {
userLogin()
return supertest(app)
.post('/api/events')
.send(testUser)
.set({
'Accept':'application/json',
'Authorization': `bearer ${userLogin().token}`
})
.expect('Content-type', /json/)
.expect(201)
})
Может ли кто-нибудь помочь мне, как заставить эти два работать? Я предполагаю, что эта функция даст мне токен-носитель, необходимый для работы этого теста. Спасибо!