test.js 1.47 KB
var assert = require('assert');
var fs = require('fs');
var Config = require('../lib/config');

var debug = false;

function log(str) {
    if (debug) {
	console.log(str);
    }
}

describe('Config', function () {

    var path = "./config.json";
    var conf = new Config(path);
    var nojson = "./no.json";
    
    describe('#get()', function () {
	it('foo => bar', function () {
	    var key = "foo";
	    var val = conf.get(key);
	    assert.equal("bar", val);
	});

    	it('a.b.c.d => 999', function () {
	    var key = "a.b.c.d";
	    var val = conf.get(key);
	    assert.equal(999, val);
	});

    	it('x.y.z => undefined', function () {
	    var key = "x.y.z";
	    var val = conf.get(key);
	    assert.equal(undefined, val);
	});
    });

    describe('#put()', function () {
	it ('hoge => fuga', function () {
	    var key = "hoge",
		val = "fuga";
	    log(conf.toString());
	    assert.equal(undefined, conf.get(key));
	    conf.put(key, val);
	    assert.equal(val, conf.get(key));
	    log("--------");
	    log(conf.toString());
	});

    	it('x.y.z => undefined, then x.y.z = "XYZ"', function () {
	    var key = "x.y.z",
		val = "XYZ";
	   log(conf.toString());
	    assert.equal(undefined, conf.get(key));
	    conf.put(key, val);
	    assert.equal(val, conf.get(key));
	   log("--------");
	   log(conf.toString());
	});
    });

    describe('No config file exists.', function () {
	var config = new Config(nojson);
    });

    after(function () {
	fs.unlink(nojson);
    });
});