mocker-data-generator
Version:
A simplified way to generate mock data, builds using a simple schema and with the FakerJs
197 lines (196 loc) • 8.17 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var ava_1 = require("ava");
var __1 = require("..");
(0, ava_1.default)('Should build with callback', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var result, mock;
return tslib_1.__generator(this, function (_a) {
result = {
users: [
{
hello: 'world'
}
]
};
mock = new __1.Mocker();
mock.schema('users', { hello: { static: 'world' } }, 1);
mock.build(function (e, db) { return t.deepEqual(db, result); });
return [2 /*return*/];
});
}); });
(0, ava_1.default)('Should produce an error', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var result, mock;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
result = {
users: [
{
hello: 'world'
}
]
};
mock = new __1.Mocker();
mock.schema('users', { hello: { faker: 'worldrqwerqw' } }, 1);
return [4 /*yield*/, mock.build(function (error) {
t.deepEqual(error.message, 'Schema: "users" Error: Invalid or missing generator on field hello. Please use one of this generators [self,db,hasOne,hasMany,static,function,values,incrementalId], note that if your generator doesnt appear in the list maybe you forgot to add it.');
})];
case 1:
_a.sent();
return [4 /*yield*/, mock.build().then(function (data) { return data; }, function (e) {
t.deepEqual(e.message, 'Schema: "users" Error: Invalid or missing generator on field hello. Please use one of this generators [self,db,hasOne,hasMany,static,function,values,incrementalId], note that if your generator doesnt appear in the list maybe you forgot to add it.');
})];
case 2:
_a.sent();
return [2 /*return*/];
}
});
}); });
(0, ava_1.default)('Should produce an error when pass an string as options', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var throwedErr, mock, error;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
throwedErr = 'Schema: "users" An string "hey" is not recognized as a parameter.';
mock = new __1.Mocker();
mock.schema('users', { hello: { faker: 'worldrqwerqw' } }, 'hey');
error = t.throws(function () {
return mock.build(function (error) {
throw error;
});
});
t.is(error === null || error === void 0 ? void 0 : error.message, throwedErr);
return [4 /*yield*/, mock.build().then(function (data) { return data; }, function (e) {
t.deepEqual(e.message, throwedErr);
})];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); });
(0, ava_1.default)('Should produce an error when uniqueField is not an array', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var throwedErr, model, mock, error;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
throwedErr = 'Schema: "users" The posible values value is not an Array';
model = {
name: {
values: 'a'
}
};
mock = new __1.Mocker();
mock.schema('users', model, { uniqueField: 'name' });
error = t.throws(function () {
return mock.build(function (error) {
throw error;
});
});
t.is(error === null || error === void 0 ? void 0 : error.message, throwedErr);
return [4 /*yield*/, mock.build().then(function (data) { return data; }, function (e) {
t.deepEqual(e.message, throwedErr);
})];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); });
(0, ava_1.default)('Should produce an error when uniqueField not exists', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var throwedErr, model, mock, error;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
throwedErr = 'Schema: "users" The field "test" not exists.';
model = {
name: {
values: ['a', 'b']
}
};
mock = new __1.Mocker();
mock.schema('users', model, { uniqueField: 'test' });
error = t.throws(function () {
return mock.build(function (error) {
throw error;
});
});
t.is(error === null || error === void 0 ? void 0 : error.message, throwedErr);
return [4 /*yield*/, mock.build().then(function (data) { return data; }, function (e) {
t.deepEqual(e.message, throwedErr);
})];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); });
(0, ava_1.default)('Should build with await (Promised)', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var result, mock, db;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
result = {
users: [
{
hello: 'world'
}
]
};
mock = new __1.Mocker();
return [4 /*yield*/, mock
.schema('users', { hello: { static: 'world' } }, 1)
.build()];
case 1:
db = _a.sent();
t.deepEqual(db, result);
return [2 /*return*/];
}
});
}); });
(0, ava_1.default)('Should build with Promised old style', function (t) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
var result, mock;
return tslib_1.__generator(this, function (_a) {
result = {
users: [
{
hello: 'world'
}
]
};
mock = new __1.Mocker();
mock.schema('users', { hello: { static: 'world' } }, 1)
.build()
.then(function (db) { return t.deepEqual(db, result); });
return [2 /*return*/];
});
}); });
(0, ava_1.default)('Should build synchronously', function (t) {
var result = {
users: [
{
hello: 'world'
}
]
};
var mock = new __1.Mocker();
var db = mock.schema('users', { hello: { static: 'world' } }, 1).buildSync();
t.deepEqual(db, result);
});
(0, ava_1.default)('Should throw synchronously', function (t) {
var result = {
users: [
{
hello: 'world'
}
]
};
var mock = new __1.Mocker();
var error = t.throws(function () {
return mock
.schema('users', { hello: { faker: 'worldrqwerqw' } }, 1)
.buildSync();
});
t.is(error === null || error === void 0 ? void 0 : error.message, 'Schema: "users" Error: Invalid or missing generator on field hello. Please use one of this generators [self,db,hasOne,hasMany,static,function,values,incrementalId], note that if your generator doesnt appear in the list maybe you forgot to add it.');
});
;