Files
taimed/node_modules/grunt-karma/gruntfile.js
2025-07-24 17:21:45 +08:00

167 lines
3.3 KiB
JavaScript

module.exports = function (grunt) {
var plugins = ['karma-mocha']
var browsers = []
if (process.env.TRAVIS) {
plugins.push('karma-firefox-launcher')
browsers.push('Firefox')
} else {
plugins.push('karma-chrome-launcher')
browsers.push('Chrome')
}
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
eslint: {
target: [
'gruntfile.js',
'lib/*.js',
'tasks/*.js',
'test/*.js'
]
},
'npm-publish': {
options: {
abortIfDirty: true
}
},
'npm-contributors': {
options: {
commitMessage: 'chore: Update contributors'
}
},
conventionalChangelog: {
release: {
options: {
changelogOpts: {
preset: 'angular'
}
},
src: 'CHANGELOG.md'
}
},
conventionalGithubReleaser: {
release: {
options: {
auth: {
type: 'oauth',
token: process.env.GH_TOKEN
},
changelogOpts: {
preset: 'angular'
}
}
}
},
bump: {
options: {
updateConfigs: ['pkg'],
commitFiles: ['package.json', 'CHANGELOG.md'],
commitMessage: 'chore: release v%VERSION%',
pushTo: 'upstream',
gitDescribeOptions: '| echo "beta-$(git rev-parse --short HEAD)"'
}
},
karma: {
options: {
browsers: browsers,
frameworks: ['mocha'],
plugins: plugins
},
single: {
singleRun: true,
files: [
{
src: 'node_modules/expect.js/index.js'
}, {
src: 'test/**/*.js'
}
]
},
config: {
configFile: 'karma.conf.js',
singleRun: true
},
merge: {
options: {
files: ['node_modules/expect.js/index.js']
},
singleRun: true,
files: [
{
src: 'test/**/*.js'
}
]
},
flatten: {
options: {
files: [
[['node_modules/expect.js/index.js']],
[[['test/**/*.js']]]
]
},
singleRun: true
},
background: {
background: true,
files: [
{
src: 'node_modules/expect.js/index.js'
}, {
src: 'test/**/*.js'
}
]
},
dev: {
reporters: 'dots',
background: true
},
auto: {
autoWatch: true
}
},
watch: {
tests: {
files: 'test/**/*.js',
tasks: ['karma:dev:run']
},
bgtest: {
// This is just to stop node exiting
files: 'test/**/*.js',
tasks: []
}
}
})
grunt.loadTasks('tasks')
require('load-grunt-tasks')(grunt)
grunt.registerTask('test', [
'eslint',
'karma:single',
'karma:config',
'karma:merge',
'karma:flatten'
])
grunt.registerTask('default', ['test'])
grunt.registerTask('bgtest', ['karma:background', 'watch:bgtest'])
grunt.registerTask('release', 'Bump the version and publish to npm.', function (type) {
grunt.task.run([
'npm-contributors',
'bump:' + (type || 'patch') + ':bump-only',
'conventionalChangelog',
'bump-commit',
'conventionalGithubReleaser',
'npm-publish'
])
})
}