@josselinesanchez/data-base-connector
Version:
Conector de base de datos simple y escalable con soporte para MongoDB, escrito en **TypeScript**, usando patrón **Factory** y **Singleton**.
33 lines (32 loc) • 1.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const DatabaseConnectorFactory_1 = require("../factories/DatabaseConnectorFactory");
const DatabaseType_1 = require("../types/DatabaseType");
const mongodb_memory_server_1 = require("mongodb-memory-server");
const mongoose_1 = __importDefault(require("mongoose"));
describe('MongoConnector (in-memory)', () => {
let mongoServer;
const connector = DatabaseConnectorFactory_1.DatabaseConnectorFactory.create(DatabaseType_1.DatabaseType.MONGO);
beforeAll(async () => {
mongoServer = await mongodb_memory_server_1.MongoMemoryServer.create();
const uri = mongoServer.getUri();
await connector.connect(uri, {
serverSelectionTimeoutMS: 3000,
});
});
it('should return a valid mongoose connection', () => {
const connection = connector.getConnection();
expect(connection).toBeDefined();
expect(connection).toBe(mongoose_1.default.connection);
});
it('should not reconnect if already connected (singleton)', async () => {
await expect(connector.connect(mongoServer.getUri())).resolves.not.toThrow();
});
afterAll(async () => {
await connector.disconnect();
await mongoServer.stop();
});
});