UNPKG

@microtica/mocks

Version:

Mock services for automated tests

46 lines 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // tslint:disable:no-console const connection_string_1 = require("connection-string"); const runner_1 = require("../runner"); const DEFAULT_CONNECTION_STRING = "mysql://root:mysqlpass123@localhost:3306"; const CONTAINER_NAME = "microtica_mysql_test"; const IMAGE_NAME = "mysql:5.6.37"; class MysqlDocker { constructor(connectionString = DEFAULT_CONNECTION_STRING, keepAlive = true) { this.connectionString = connectionString; this.docker = new runner_1.DockerRunner(IMAGE_NAME, CONTAINER_NAME); this.connection = new connection_string_1.ConnectionString(connectionString); } getConnectionString() { return this.connectionString; } stop() { return this.docker.remove(); } async start() { try { const isRunning = await this.docker.isRunning(); if (isRunning) { return { database: this.connection }; } console.log(this.connection); const dbName = this.connection.segments ? this.connection.segments[0] : "initial_db"; await this.docker.run({ env: [ `MYSQL_ROOT_PASSWORD=${this.connection.password}`, `MYSQL_DATABASE=${dbName}`, `MYSQL_ROOT_PASSWORD=${this.connection.password}` ], portsToOpen: [this.connection.port] }); console.log("[INFO] MYSQL server initialized."); return { database: this.connection }; } catch (e) { console.error(e); } } } exports.MysqlDocker = MysqlDocker; //# sourceMappingURL=index.js.map