Как я могу написать модульный тест для создания уникального идентификатора? - PullRequest
1 голос
/ 19 марта 2019

Это то, что я имею до сих пор.Но я понятия не имею, написать тесты, чтобы убедиться, что он работает правильно.

const uniqid = require('uniqid');

module.exports = ({ name }) => {
  return context => {
    // Generate a uniqid and add it user
    context.data['id'] = uniqid(name).toUpperCase();
    return context;
  };
};

Я использую eslint и mocha

1 Ответ

1 голос
/ 19 марта 2019

Я предполагаю, что вы хотите проверить, что context получает соответствующий id, который является заглавной String, начинающейся с name и сопровождаемой 18 символами A-Z или цифрами.

Я не знаю, какую платформу тестирования вы используете, но вы можете проверить id с помощью Регулярного выражения :

// ignore this, just require the 'uniqid' module
const uniqid = str => `${str}4n5pxq24kpiob12og9`;

const addId = ({name}) => {
  return context => {
    // Generate a uniqid and add it user
    context.data['id'] = uniqid(name).toUpperCase();
    return context;
  };
};

// addId should add an appropriate id to `user.data.id`
const {data: {id}} = addId({name: 'Annie'})({data: {}});
console.assert(/^ANNIE[A-Z\d]{18}$/.test(id));

Редактировать: Поскольку вы используете mocha, вы также можете добавить chai и использовать его метод match следующим образом:

const {expect} = require('chai');

describe('addId', () => {
  it('should add an appropriate id to `user.data.id`', () => {
    const user = {data: {}};
    addId({name: 'Annie'})(user);
    expect(user.data.id).to.match(/^ANNIE[A-Z\d]{18}$/);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...