json-api-nestjs
Version:
JsonApi Plugin for NestJs
88 lines • 3.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.entities = void 0;
exports.mockDbPgLiteTestModule = mockDbPgLiteTestModule;
exports.dbRandomName = dbRandomName;
exports.pullData = pullData;
exports.getModuleForPgLite = getModuleForPgLite;
exports.getDefaultQuery = getDefaultQuery;
const tslib_1 = require("tslib");
const testing_1 = require("@nestjs/testing");
const nestjs_1 = require("@mikro-orm/nestjs");
const core_1 = require("@mikro-orm/core");
const nestjs_shared_1 = require("../../utils/nestjs-shared");
const entities_1 = require("./entities");
const factory_1 = require("../../modules/micro-orm/factory");
const micro_orm_util_service_1 = require("../../modules/micro-orm/service/micro-orm-util.service");
const constants_1 = require("../../constants");
tslib_1.__exportStar(require("./entities"), exports);
tslib_1.__exportStar(require("./utils"), exports);
const utils_1 = require("./utils");
const constants_2 = require("../../modules/micro-orm/constants");
const json_api_transformer_service_1 = require("../../modules/mixin/service/json-api-transformer.service");
exports.entities = [entities_1.Users, entities_1.UserGroups, entities_1.Roles, entities_1.Comments, entities_1.Addresses, entities_1.Notes];
function mockDbPgLiteTestModule(dbName = `test_db_${Date.now()}`) {
const mikroORM = {
provide: core_1.MikroORM,
useFactory: async () => {
const knexInst = await (0, utils_1.sharedConnect)();
return (0, utils_1.initMikroOrm)(knexInst, dbName);
},
};
return {
module: nestjs_1.MikroOrmModule,
providers: [mikroORM],
exports: [mikroORM],
};
}
const readOnlyDbName = `readonly_db_${Date.now()}`;
function dbRandomName(readOnly = false) {
if (readOnly) {
return readOnlyDbName;
}
return `test_db_${Date.now()}`;
}
async function pullData(em, count = 1) {
for (let i = 0; i < count; i++) {
await (0, utils_1.pullAllData)(em);
}
}
function getModuleForPgLite(entity, dbName = `test_db_${Date.now()}`) {
return testing_1.Test.createTestingModule({
imports: [mockDbPgLiteTestModule(dbName)],
providers: [
(0, factory_1.CurrentMicroOrmProvider)(),
(0, factory_1.CurrentEntityManager)(),
(0, factory_1.CurrentEntityMetadata)(),
(0, factory_1.CurrentEntityRepository)(entity),
micro_orm_util_service_1.MicroOrmUtilService,
{
provide: constants_1.CURRENT_ENTITY,
useValue: entity,
},
(0, factory_1.OrmServiceFactory)(),
(0, factory_1.EntityPropsMap)(exports.entities),
{
provide: constants_1.GLOBAL_MODULE_OPTIONS_TOKEN,
useValue: { options: { arrayType: constants_2.DEFAULT_ARRAY_TYPE } },
},
json_api_transformer_service_1.JsonApiTransformerService,
],
}).compile();
}
function getDefaultQuery() {
return {
[nestjs_shared_1.QueryField.filter]: {
relation: null,
target: null,
},
[nestjs_shared_1.QueryField.fields]: null,
[nestjs_shared_1.QueryField.include]: null,
[nestjs_shared_1.QueryField.sort]: null,
[nestjs_shared_1.QueryField.page]: {
size: 1,
number: 1,
},
};
}
//# sourceMappingURL=index.js.map