1 | var grunt = require('grunt')
|
2 | , lf = grunt.util.linefeed
|
3 | , path = require('path')
|
4 | , fs = require('fs')
|
5 | , assert = require('assert')
|
6 | , testDir = path.join(process.cwd(), 'test')
|
7 | , opts = { gruntfile: path.join(testDir, 'Gruntfile.js') }
|
8 | , tasks = [
|
9 | 'exec:test1'
|
10 | , 'exec:test2'
|
11 | , 'exec:test3:42:love'
|
12 | , 'exec:test4'
|
13 | , 'exec:test5'
|
14 | , 'exec:test6'
|
15 | , 'exec:test7'
|
16 | , 'exec:test8'
|
17 | , 'exec:test9'
|
18 | , 'exec:test10'
|
19 | ];
|
20 |
|
21 | grunt.tasks(tasks, opts, function() {
|
22 | var tests = [
|
23 | { name: 'test1', expected: 'bruce willis was dead' + lf }
|
24 | , { name: 'test2' , expected: 'grunt@' + grunt.version + lf }
|
25 | , {
|
26 | name: 'test3'
|
27 | , expected: [
|
28 | 'the answer to life is 42', 'thoughts on tacos? love'
|
29 | ].join(', ') + lf
|
30 | }
|
31 | , {
|
32 | name: 'test4'
|
33 | , expected:'you can use callback, and error, stdout, stderr can be' +
|
34 | ' used as arguments' + lf
|
35 | }
|
36 | , { name: 'test7', expected: 'you do not even need an object' + lf }
|
37 | ]
|
38 | , outputPath;
|
39 |
|
40 | tests.forEach(function(test) {
|
41 | outputPath = path.join(testDir, test.name);
|
42 | assert.equal(fs.readFileSync(outputPath, 'utf8'), test.expected);
|
43 |
|
44 |
|
45 | fs.unlinkSync(outputPath);
|
46 |
|
47 | grunt.log.ok(test.name +' passed');
|
48 | });
|
49 | });
|