-
Notifications
You must be signed in to change notification settings - Fork 2
/
Gruntfile.js
executable file
·119 lines (105 loc) · 2.47 KB
/
Gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
module.exports = function (grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jshint: {
files: [
'Gruntfile.js',
'hoodie.s3.js',
'worker.js',
'hooks/*.js'
],
options: {
jshintrc: '.jshintrc'
}
},
simplemocha: {
options: {
ui: 'tdd'
},
unit: {
src: ['test/unit/*.js']
}
},
mocha_browser: {
all: {options: {urls: ['http://localhost:<%= connect.options.port %>']}}
},
shell: {
removeData: {
command: 'rm -rf ' + require('path').resolve(__dirname, 'data')
},
npmLink: {
command: 'npm link && npm link <%= pkg.name %>'
},
npmUnlink: {
command: 'npm unlink && npm unlink <%= pkg.name %>'
},
installPlugin: {
command: 'hoodie install <%= pkg.name.replace("hoodie-plugin-", "") %>'
},
removePlugin: {
command: 'hoodie uninstall <%= pkg.name.replace("hoodie-plugin-", "") %>'
}
},
hoodie: {
start: {
options: {
www: 'test/browser',
callback: function (config) {
grunt.config.set('connect.options.port', config.stack.www.port);
}
}
}
},
env: {
test: {
HOODIE_SETUP_PASSWORD: 'testing'
}
},
watch: {
jshint: {
files: ['<%= jshint.files %>'],
tasks: 'jshint'
},
unittest: {
files: 'worker.js',
tasks: 'test:unit'
}
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-mocha-browser');
grunt.loadNpmTasks('grunt-simple-mocha');
grunt.loadNpmTasks('grunt-continue');
grunt.loadNpmTasks('grunt-hoodie');
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-env');
grunt.registerTask('test:unit', ['simplemocha:unit']);
grunt.registerTask('test:browser', [
'env:test',
'shell:removeData',
'shell:npmLink',
'shell:installPlugin',
'hoodie',
'continueOn',
'mocha_browser:all',
'continueOff',
'hoodie_stop',
'shell:npmUnlink',
'shell:removePlugin'
]);
grunt.registerTask('default', ['serve']);
grunt.registerTask('serve', [
'env:test',
'shell:npmLink',
'shell:installPlugin',
'hoodie:start',
'watch:keepalive'
]);
grunt.registerTask('test', [
'jshint',
'test:unit',
'test:browser'
]);
};