Skip to content

Commit

Permalink
Merge pull request #5 from tschaub/tests
Browse files Browse the repository at this point in the history
Add util tests.
  • Loading branch information
tschaub committed May 30, 2014
2 parents 9698626 + 4245821 commit 2824fd7
Show file tree
Hide file tree
Showing 5 changed files with 117 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
language: node_js
node_js:
- "0.10"
- "0.8"
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"devDependencies": {
"glob": "~3.2.9",
"mocha": "~1.18.2",
"jshint": "~2.4.4"
"jshint": "~2.4.4",
"chai": "~1.9.1"
}
}
2 changes: 2 additions & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,5 @@
Publish files to a `gh-pages` branch on GitHub (or any other branch anywhere else).

This will evolve into a more useful package. For now, it's just some extracted bits from the [`grunt-gh-pages`](https://www.npmjs.org/package/grunt-gh-pages) package.

[![Current Status](https://secure.travis-ci.org/tschaub/gh-pages.png?branch=master)](https://travis-ci.org/tschaub/gh-pages)
12 changes: 12 additions & 0 deletions test/helper.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
var chai = require('chai');


/** @type {boolean} */
chai.config.includeStack = true;


/**
* Chai's assert function configured to include stacks on failure.
* @type {function}
*/
exports.assert = chai.assert;
97 changes: 97 additions & 0 deletions test/lib/util.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
var path = require('path');

var assert = require('../helper').assert;

var util = require('../../lib/util');

describe('util', function() {

var files;
beforeEach(function() {
files = [
path.join('a1', 'b1', 'c2', 'd2.txt'),
path.join('a1', 'b2', 'c2', 'd1.txt'),
path.join('a2.txt'),
path.join('a1', 'b1', 'c1', 'd1.txt'),
path.join('a1', 'b1', 'c2', 'd1.txt'),
path.join('a1', 'b1.txt'),
path.join('a2', 'b1', 'c2.txt'),
path.join('a1', 'b1', 'c2', 'd3.txt'),
path.join('a1', 'b2', 'c1', 'd1.txt'),
path.join('a1.txt'),
path.join('a2', 'b1', 'c1.txt'),
path.join('a2', 'b1.txt')
].slice();
});

describe('byShortPath', function() {
it('sorts an array of filepaths, shortest first', function() {
files.sort(util.byShortPath);

var expected = [
path.join('a1.txt'),
path.join('a2.txt'),
path.join('a1', 'b1.txt'),
path.join('a2', 'b1.txt'),
path.join('a2', 'b1', 'c1.txt'),
path.join('a2', 'b1', 'c2.txt'),
path.join('a1', 'b1', 'c1', 'd1.txt'),
path.join('a1', 'b1', 'c2', 'd1.txt'),
path.join('a1', 'b1', 'c2', 'd2.txt'),
path.join('a1', 'b1', 'c2', 'd3.txt'),
path.join('a1', 'b2', 'c1', 'd1.txt'),
path.join('a1', 'b2', 'c2', 'd1.txt')
];

assert.deepEqual(files, expected);
});
});

describe('uniqueDirs', function() {

it('gets a list of unique directory paths', function() {
// not comparing order here, so we sort both
var got = util.uniqueDirs(files).sort();

var expected = [
'.',
'a1',
'a2',
path.join('a1', 'b1'),
path.join('a1', 'b1', 'c1'),
path.join('a1', 'b1', 'c2'),
path.join('a1', 'b2'),
path.join('a1', 'b2', 'c1'),
path.join('a1', 'b2', 'c2'),
path.join('a2', 'b1')
].sort();

assert.deepEqual(got, expected);
});

});

describe('dirsToCreate', function() {

it('gets a sorted list of directories to create', function() {
var got = util.dirsToCreate(files);

var expected = [
'.',
'a1',
'a2',
path.join('a1', 'b1'),
path.join('a1', 'b2'),
path.join('a2', 'b1'),
path.join('a1', 'b1', 'c1'),
path.join('a1', 'b1', 'c2'),
path.join('a1', 'b2', 'c1'),
path.join('a1', 'b2', 'c2')
];

assert.deepEqual(got, expected);
});

});

});

0 comments on commit 2824fd7

Please sign in to comment.