From 3181b94870002a0ecdf1b6fb9aac7e61e5f6a0f0 Mon Sep 17 00:00:00 2001 From: jonschlinkert Date: Sat, 19 Mar 2016 13:00:39 -0400 Subject: [PATCH] update tests, add tests for `.keys` --- test.js | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 20 deletions(-) diff --git a/test.js b/test.js index f1d1545..c44d9e8 100644 --- a/test.js +++ b/test.js @@ -7,28 +7,28 @@ 'use strict'; -/* deps:mocha */ +require('mocha'); require('should'); -var git = require('./'); +var parse = require('./'); describe('sync:', function() { it('should return an object', function() { - git.sync().should.have.properties(['core']); - git.sync().should.not.have.properties(['foo']); - git.sync().should.not.throw; + parse.sync().should.have.properties(['core']); + parse.sync().should.not.have.properties(['foo']); + parse.sync().should.not.throw; }); }); describe('async:', function() { it('should throw a callback is not passed:', function(cb) { (function() { - git(); - }).should.throw('parse-git-config async expects a callback function.') + parse(); + }).should.throw('parse-git-config async expects a callback function.'); cb(); }); it('should throw an error when .git/config does not exist:', function(cb) { - git(function(err, config) { + parse(function(err, config) { config.should.have.property('core'); config.should.not.have.property('foo'); cb(); @@ -36,7 +36,7 @@ describe('async:', function() { }); it('should throw an error when .git/config does not exist:', function(cb) { - git({path: 'foo'}, function(err, config) { + parse({path: 'foo'}, function(err, config) { err.should.be.an.instanceof(Error); err.message.should.match(/ENOENT.*parse-git-config/); cb(); @@ -47,18 +47,34 @@ describe('async:', function() { describe('resolve:', function() { it('should resolve the git config in the cwd by default', function() { var sep = require('path').sep; - git.resolve().should.equal(process.cwd() + sep + '.git' + sep + 'config'); - }) + parse.resolve().should.equal(process.cwd() + sep + '.git' + sep + 'config'); + }); it('should allow override path', function() { - var path = require('path').resolve(process.env.HOME, '.gitconfig') - git.resolve({path: path}).should.equal(path); - }) + var path = require('path').resolve(process.env.HOME, '.gitconfig'); + parse.resolve({path: path}).should.equal(path); + }); it('should resolve relative path to cwd', function() { - git.resolve({path: '.config'}) + parse.resolve({path: '.config'}) .should.equal(require('path').resolve(process.cwd(), '.config')); - }) + }); it('should allow override of cwd', function() { - git.resolve({path: '.config', cwd: '/opt/config'}) - .should.equal(require('path').resolve('/opt/config','.config')) - }) -}) + parse.resolve({path: '.config', cwd: '/opt/config'}) + .should.equal(require('path').resolve('/opt/config','.config')); + }); +}); + +describe('.keys:', function() { + it('should parse ini-style keys', function() { + var config = { + 'foo "bar"': { doStuff: true }, + 'foo "baz"': { doStuff: true } + }; + + parse.keys(config).should.eql({ + foo: { + bar: { doStuff: true }, + baz: { doStuff: true } + } + }); + }); +});