UNPKG

mecano

Version:

Common functions for system deployment.

121 lines (105 loc) 3.94 kB
should = require 'should' mecano = if process.env.MECANO_COV then require '../lib-cov/mecano' else require '../lib/mecano' misc = if process.env.MECANO_COV then require '../lib-cov/misc' else require '../lib/misc' test = require './test' they = require 'ssh2-they' fs = require 'ssh2-fs' describe 'ini', -> scratch = test.scratch @ they 'stringify an object', (ssh, next) -> mecano.ini ssh: ssh content: user: preference: color: 'rouge' destination: "#{scratch}/user.ini" , (err, written) -> return next err if err written.should.eql 1 fs.readFile ssh, "#{scratch}/user.ini", 'utf8', (err, data) -> return next err if err data.should.eql '[user.preference]\ncolor = rouge\n' next() they 'stringify an object and with custom separator', (ssh, next) -> mecano.ini ssh: ssh content: user: preference: color: 'rouge' destination: "#{scratch}/user.ini" separator: ':' , (err, written) -> return next err if err written.should.eql 1 fs.readFile ssh, "#{scratch}/user.ini", 'utf8', (err, data) -> return next err if err data.should.eql '[user.preference]\ncolor:rouge\n' next() they 'merge an object', (ssh, next) -> content = '[user.preference]\nlanguage = node\ncolor = rouge\n' fs.writeFile ssh, "#{scratch}/user.ini", content, (err) -> return next err if err mecano.ini ssh: ssh content: user: preference: color: 'violet' destination: "#{scratch}/user.ini" merge: true , (err, written) -> return next err if err written.should.eql 1 fs.readFile ssh, "#{scratch}/user.ini", 'utf8', (err, data) -> return next err if err data.should.eql '[user.preference]\nlanguage = node\ncolor = violet\n' next() they 'discard undefined and null', (ssh, next) -> mecano.ini ssh: ssh content: user: preference: color: 'violet', age: undefined, gender: null destination: "#{scratch}/user.ini" merge: true , (err, written) -> return next err if err written.should.eql 1 fs.readFile ssh, "#{scratch}/user.ini", 'utf8', (err, data) -> return next err if err data.should.eql '[user.preference]\ncolor = violet\n' next() they 'remove null within merge', (ssh, next) -> content = '[user.preference]\nlanguage = node\ncolor = rouge\n' fs.writeFile ssh, "#{scratch}/user.ini", content, (err) -> return next err if err mecano.ini ssh: ssh content: user: preference: color: null destination: "#{scratch}/user.ini" merge: true , (err, written) -> return next err if err written.should.eql 1 fs.readFile ssh, "#{scratch}/user.ini", 'utf8', (err, data) -> return next err if err data.should.eql '[user.preference]\nlanguage = node\n' next() they 'disregard undefined within merge', (ssh, next) -> content = '[user.preference]\nlanguage = node\ncolor = rouge\n' fs.writeFile ssh, "#{scratch}/user.ini", content, (err) -> return next err if err mecano.ini ssh: ssh content: user: preference: color: undefined destination: "#{scratch}/user.ini" merge: true , (err, written) -> return next err if err written.should.eql 0 next() they 'call stringify udf', (ssh, next) -> mecano.ini ssh: ssh content: user: preference: color: true stringify: misc.ini.stringify_square_then_curly destination: "#{scratch}/user.ini" merge: true , (err, written) -> return next err if err written.should.eql 1 fs.readFile ssh, "#{scratch}/user.ini", 'utf8', (err, data) -> return next err if err data.should.eql '[user]\n preference = {\n color = true\n }\n\n' next()