Я предполагаю, что вы хотите проверить, что 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}$/);
});
});