Как мне протестировать функцию JS с помощью Jest? - PullRequest
1 голос
/ 08 июля 2020

Новое в JS, Express, Node, Jest ... Но в качестве проекта нам была предоставлена ​​новая незнакомая кодовая база, и мы предполагаем добавить в нее некоторые функции, включая некоторое тестирование. В коде в настоящее время есть эта функция для создания нового User при входе в систему;

// Create
export async function create(parentValue, { name, email, password }) {
  // Users exists with same email check
  const user = await models.User.findOne({ where: { email } })

  if (!user) {
    // User does not exists
    const passwordHashed = await bcrypt.hash(password, serverConfig.saltRounds)

    return await models.User.create({
      name,
      email,
      password: passwordHashed
    })
  } else {
    // User exists
    throw new Error(`The email ${ email } is already registered. Please try to login.`)
  }
}

Это мой тест, который я пытаюсь пройти, но у меня возникают трудности даже с прохождением функция информации

import { create } from './resolvers.js'
import models from '../../setup/models'

describe("user resolvers", () => {
  test("creating a user", () => {
    expect(create({name: "test", email: "test@example.com", password: "123456"})).toMatchObject(models.User)
  })
})

1 Ответ

1 голос
/ 09 июля 2020

Прежде всего, вам нужно использовать async / await, если вы хотите получить созданный пользовательский экземпляр из БД. в качестве альтернативы вы можете использовать насмешку. Другой пункт toMatchObject методы ожидают в качестве аргумента экземпляр / объект класса. Попробуйте, как показано ниже:

test("creating a user", async (done) => {
  const attributes = {name: "test", email: "test@example.com", password: "123456"};
  const { name, email } = await create(attributes);
  expect(attributes).toMatchObject({ name, email });
  done();
});

ПРИМЕЧАНИЕ : Удалите аргумент parentValue из метода create, если он не вам нужно больше

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