Как мне добавить создание пользователей и аутентификацию для входа в интеграционное тестирование моего приложения React? - PullRequest
0 голосов
/ 30 мая 2020

Мой внутренний код использует 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)
  })

Может ли кто-нибудь помочь мне, как заставить эти два работать? Я предполагаю, что эта функция даст мне токен-носитель, необходимый для работы этого теста. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...