1.0.5 • Published 3 years ago
mz-mock-decorator v1.0.5
Описание
Библиотека c декоратороми для моков и генераторов Подходит для дебагинга и тестирования
Установка
npm i --save mz-mock-decorator
Пример №1 использования декораторов
import {MzMock, MzMockObservable, MzMockPromise, MzMockResultTypeEnum, MzMockSimple} from "./@res/mz-mock";
import {of} from "rxjs";
class Class {
@MzMockSimple (
{
result: 'from simple mock',
active: true
}
)
private simple (a: any, b: any) {
return `from result - a = ${a} | b = ${b}`;
}
@MzMockObservable (
{
result: 'from observable mock',
active: true
}
)
private mockSampleObservable (a: any, b: any) {
return of(`from result - a = ${a} | b = ${b}`)
}
@MzMockPromise (
{
result: 'from promise mock',
active: false
}
)
private mockSamplePromise1 (a: any, b: any) {
return new Promise(
(resolve) => {
resolve(`from promise - a = ${a} | b = ${b}`)
}
)
}
@MzMock (
{
result: 'from promise MzMock',
active: true,
type: MzMockResultTypeEnum.promise
}
)
private mockSamplePromise (a: any, b: any) {
return new Promise(
(resolve) => {
resolve(`from MzMock promise - a = ${a} | b = ${b}`)
}
)
}
@MzMock (
{
result: (a, b) => `from function MzMock- a = ${a} | b = ${b}`,
active: false,
type: MzMockResultTypeEnum.function
}
)
private mockSampleSimple2 (a: any, b: any) {
return `from function - a = ${a} | b = ${b}`;
}
/*
* return mock
* */
@MzMock(
{
type: MzMockResultTypeEnum.simple,
path: 'mock.test.a',
result: {mock: {test: { a: 1}}},
default: 0,
active: true
}
)
private testFunction ()
{
return 'from real 1';
}
}
Пример №2 использования генераторов для моков
import {MzMockGenerator} from "./@res/mz-mock";
export const names = [
'Амирхан',
'Муса',
'Адам',
'Сайхан',
'Абдуллах',
'Зураб',
'Тони',
'Джони деп',
'Капитан америка',
'Сайфуллахь',
'Джарвис',
'Убайд',
'Хизир',
'Муслим',
'Азнаур',
'Зина',
'Залина',
'Марина',
'Екатенира',
'Света',
'Фатима',
];
const surnames = [
'Aliev',
'Magomadov',
'Abdulaev'
]
const mzMockGenerator = new MzMockGenerator(
{
default: names,
surnames: surnames,
}
);
const testObject = {
id: 1,
appsTitle: 'Apps',
appItems: mzMockGenerator.getObjectWithRandomParams<any>(
{
/* get random number with default params from 1 to 1000 */
randomNumber: '__random-number__',
/* get random number with specific min and max params */
randomNumberWithMinAndMax: '__random-number(9999, 99999)__',
/* get index */
index: '__idx__',
/* get index with increment 1 */
number: '__idx(1)__',
appImg: '__icon-url__',
/* get random element from default box */
appName: '__box__',
/* get random element from surnames box */
surname: '__box(surnames)__',
testKey: 'abdullakh',
selected: false,
},
20
),
};
Результат примера №2
{
randomNumber: 225,
randomNumberWithMinAndMax: 66116,
index: 0,
number: 1,
appImg: 'https://i.pravatar.cc/300?img=30',
appName: 'Екатенира',
surname: 'Magomadov',
testKey: 'abdullakh',
selected: false
},
{
randomNumber: 313,
randomNumberWithMinAndMax: 57895,
index: 1,
number: 2,
appImg: 'https://i.pravatar.cc/300?img=11',
appName: 'Муслим',
surname: 'Magomadov',
testKey: 'abdullakh',
selected: false
},