django-vue3-admin-web/node_modules/picomodal/Gruntfile.js
2025-10-20 21:21:14 +08:00

191 lines
4.9 KiB
JavaScript

/* global module: false, process: false, __dirname: false, require: false */
// Browsers to test on saucelabs
var browsers = {
firefox: [
{
browserName: 'firefox',
platform: 'WIN8.1'
}
],
chrome: [
{
browserName: 'chrome',
platform: 'windows 8.1'
}
],
ie:[
{
browserName: 'internet explorer',
version: '11',
platform: 'WIN8.1'
},
{
browserName: 'internet explorer',
version: '10',
platform: 'WIN8'
},
{
browserName: 'internet explorer',
version: '9',
platform: 'WIN7'
}
],
android: [
{
browserName: 'android',
platform: 'Linux',
version: '4.4',
deviceName: 'Android Emulator'
},
{
browserName: 'android',
platform: 'Linux',
version: '5.0',
deviceName: 'Android Emulator'
},
{
browserName: 'android',
platform: 'Linux',
version: '5.1',
deviceName: 'Android Emulator'
}
],
ios: [
{
browserName: 'iphone',
platform: 'OS X 10.10',
version: '9.2',
deviceName: 'iPhone Simulator'
}
]
};
module.exports = function(grunt) {
"use strict";
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jshint: {
files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
options: {
bitwise: true,
camelcase: true,
curly: true,
eqeqeq: true,
forin: true,
immed: true,
indent: 4,
latedef: "nofunc",
newcap: true,
noarg: true,
nonew: true,
noempty: true,
undef: true,
unused: true,
strict: true,
trailing: true,
maxlen: 100,
browser: true,
globals: {
"define": true,
"module": true
}
}
},
uglify: {
build: {
src: 'src/picoModal.js',
dest: 'build/picoModal-<%= pkg.version %>.min.js'
}
},
watch: {
files: ['src/**/*.js', 'test/**/*.js'],
tasks: ['default']
},
bowerVerify: {
build: {}
},
domTest: {
files: [ "test/*.js" ]
},
// Register saucelabs configuration for each browser group. This allows
// them to be run individually instead of all or nothing
'sauce-load': {
//mockTunnel: true,
//seleniumHost: 'localhost',
//seleniumPort: 4444,
urls: [ 'http://localhost:8080', 'http://localhost:9090' ],
build: process.env.CI_BUILD_NUMBER || Date.now(),
name: 'PicoModal unit tests',
public: "public",
mode: "followup",
concurrent: 5,
browsers: browsers,
testTimeout: 180000,
setupTimeout: 180000
}
});
grunt.registerTask('server', function () {
var app = require('express')();
app.get('/', function (req, res) {
res.sendFile(__dirname + "/test/index.html");
});
app.get('/picoModal.js', function (req, res) {
res.sendFile(__dirname + "/src/picoModal.js");
});
app.listen(9090);
});
// Plugins
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-bower-verify');
grunt.loadNpmTasks('grunt-dom-test');
grunt.loadNpmTasks('grunt-continue');
grunt.loadNpmTasks('grunt-sauce-load');
// Default task(s).
grunt.registerTask(
'default',
['jshint', 'uglify', 'domTest:test']);
grunt.registerTask( 'dev', [
'server', 'domTest:server', 'continue:on',
'jshint', 'uglify', 'domTest:test',
'watch']);
grunt.registerTask(
'sauce',
['default', 'server', 'domTest:server', 'sauce-load']);
// Register a grunt target for testing individual browser groups
Object.keys(browsers).forEach(function (browser) {
grunt.registerTask(
browser,
['default', 'server', 'domTest:server', 'sauce-load:' + browser]);
});
// Pull requests don't have access to saucelabs, so we need
// to disable that
grunt.registerTask('travis', [
process.env.TRAVIS_PULL_REQUEST === "false" ?
'sauce' :
'default'
]);
};