UNPKG

sql-source-control-follow

Version:

Simple CLI for getting SQL into source control systems.

187 lines 7.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var mock = require("mock-fs"); var config_1 = require("./config"); describe('Config class', function () { var name = 'dev'; var server = 'localhost'; var port = 1433; var database = 'awesome-db'; var user = 'example'; var password = 'qwerty'; var connection = { name: name, server: server, port: port, database: database, user: user, password: password }; var files = ['dbo.*']; var data = ['dbo.LookupTable']; var output = { root: './my-database' }; var idempotency = { triggers: false }; describe('write method', function () { it('should write to default file', function () { // todo (jbl): error thrown with nyc // mock(); // Config.write({ // connections: [connection] // }); // const config: Config = new Config(); // const conn: Connection = config.connections[0] as Connection; // expect(conn.name).toEqual(name); // expect(conn.server).toEqual(server); // expect(conn.port).toEqual(port); // expect(conn.database).toEqual(database); // expect(conn.user).toEqual(user); // expect(conn.password).toEqual(password); // mock.restore(); }); }); describe('doesDefaultExist method', function () { it('should return true if file exists', function () { var _a; var file = config_1.default.defaultConfigFile; mock((_a = {}, _a[file] = '', _a)); var value = config_1.default.doesDefaultExist(); expect(value).toEqual(true); mock.restore(); }); }); describe('doesDefaultExist method', function () { it('should return false if file not exists', function () { mock(); var value = config_1.default.doesDefaultExist(); expect(value).toEqual(false); mock.restore(); }); }); describe('getConnectionsFromWebConfig method', function () { it('should return connections if default web.config exists', function () { var _a; var file = config_1.default.defaultWebConfigFile; mock((_a = {}, _a[file] = "\n <?xml version=\"1.0\" encoding=\"utf-8\"?>\n <configuration>\n <connectionStrings>\n <add\n name=\"" + name + "\"\n connectionString=\"server=" + server + ";database=" + database + ";uid=" + user + ";password=" + password + ";\" />\n </connectionStrings>\n </configuration>\n ", _a)); var conns = config_1.default.getConnectionsFromWebConfig(); var conn = conns[0]; expect(conn.name).toEqual(name); expect(conn.server).toEqual(server); expect(conn.port).toBeUndefined(); expect(conn.database).toEqual(database); expect(conn.user).toEqual(user); expect(conn.password).toEqual(password); mock.restore(); }); it('should return undefined if web.config not exists', function () { mock(); var conns = config_1.default.getConnectionsFromWebConfig(); expect(conns).toBeUndefined(); mock.restore(); }); }); describe('constructor', function () { it('should load from default file', function () { var _a; var file = config_1.default.defaultConfigFile; mock((_a = {}, _a[file] = JSON.stringify({ connections: [connection], files: files, data: data, output: output, idempotency: idempotency }), _a)); var config = new config_1.default(); var conn = config.connections[0]; expect(conn.name).toEqual(name); expect(conn.server).toEqual(server); expect(conn.port).toEqual(port); expect(conn.database).toEqual(database); expect(conn.user).toEqual(user); expect(conn.password).toEqual(password); expect(config.files).toEqual(files); expect(config.data).toEqual(data); expect(config.output.root).toEqual(output.root); expect(config.idempotency.triggers).toEqual(idempotency.triggers); mock.restore(); }); it('should load from specified file', function () { var _a; var file = 'override-example.json'; mock((_a = {}, _a[file] = JSON.stringify({ connections: [connection], files: files, data: data, output: output, idempotency: idempotency }), _a)); var config = new config_1.default(file); var conn = config.connections[0]; expect(conn.name).toEqual(name); expect(conn.server).toEqual(server); expect(conn.port).toEqual(port); expect(conn.database).toEqual(database); expect(conn.user).toEqual(user); expect(conn.password).toEqual(password); expect(config.files).toEqual(files); expect(config.data).toEqual(data); expect(config.output.root).toEqual(output.root); expect(config.idempotency.triggers).toEqual(idempotency.triggers); mock.restore(); }); }); describe('getConnection method', function () { it('should return first connection', function () { var _a; var file = config_1.default.defaultConfigFile; mock((_a = {}, _a[file] = JSON.stringify({ connections: [connection] }), _a)); var config = new config_1.default(); var conn = config.getConnection(); expect(conn.name).toEqual(name); expect(conn.server).toEqual(server); expect(conn.port).toEqual(port); expect(conn.database).toEqual(database); expect(conn.user).toEqual(user); expect(conn.password).toEqual(password); mock.restore(); }); it('should return connection by name', function () { var _a; var file = config_1.default.defaultConfigFile; mock((_a = {}, _a[file] = JSON.stringify({ connections: [connection] }), _a)); var config = new config_1.default(); var conn = config.getConnection(name); expect(conn.name).toEqual(name); expect(conn.server).toEqual(server); expect(conn.port).toEqual(port); expect(conn.database).toEqual(database); expect(conn.user).toEqual(user); expect(conn.password).toEqual(password); mock.restore(); }); }); describe('getConnections method', function () { it('should return all conneections', function () { var _a; var file = config_1.default.defaultConfigFile; mock((_a = {}, _a[file] = JSON.stringify({ connections: [connection] }), _a)); var config = new config_1.default(); var conns = config.getConnections(); expect(conns.length).toEqual(1); mock.restore(); }); }); }); //# sourceMappingURL=config.spec.js.map