UNPKG

2.03 kBJavaScriptView Raw
1'use strict';
2
3var chg = require('../lib/chg.js');
4var fs = require('fs');
5var shell = require('shelljs');
6
7/*
8 ======== A Handy Little Nodeunit Reference ========
9 https://github.com/caolan/nodeunit
10
11 Test methods:
12 test.expect(numAssertions)
13 test.done()
14 Test assertions:
15 test.ok(value, [message])
16 test.equal(actual, expected, [message])
17 test.notEqual(actual, expected, [message])
18 test.deepEqual(actual, expected, [message])
19 test.notDeepEqual(actual, expected, [message])
20 test.strictEqual(actual, expected, [message])
21 test.notStrictEqual(actual, expected, [message])
22 test.throws(block, [error], [message])
23 test.doesNotThrow(block, [error], [message])
24 test.ifError(value)
25*/
26
27function fixture(fileName){
28 return fs.readFileSync('../test/fixtures/'+fileName, 'utf8');
29}
30
31function output(){
32 return fs.readFileSync('./CHANGELOG.md', 'utf8');
33}
34
35exports['chg'] = {
36 setUp: function(done) {
37 // create a temp folder for changelog test files
38 this.dirName = 'test-tmp-'+(new Date().getTime());
39 shell.mkdir('-p', this.dirName);
40 shell.cd(this.dirName);
41
42 done();
43 },
44 tearDown: function(done){
45 // delete the test folder
46 shell.cd('..');
47 shell.rm('-rf', this.dirName);
48
49 done();
50 },
51 'changelog actions': function(test) {
52 test.expect(6);
53
54 chg.init();
55 test.equal(output(), fixture('init.md'), 'init failed');
56
57 chg.add('Test add');
58 test.equal(output(), fixture('add.md'), 'add failed');
59
60 chg.release('0.0.1', { date: '12/12/12' });
61 test.equal(output(), fixture('release.md'), 'release failed');
62
63 chg.add('Test add again');
64 chg.add('Test add with [link](http://heff.me)');
65 test.equal(output(), fixture('add2.md'), 'add 2 failed');
66
67 chg.release('0.0.2', { date: '12/13/12' });
68 test.equal(output(), fixture('release2.md'), 'release 2 failed');
69
70 chg.delete();
71 test.ok(!fs.existsSync('./CHANGELOG.md'));
72
73 test.done();
74 }
75};
\No newline at end of file