carhartl/jquery-cookie

View on GitHub
Gruntfile.js

Summary

Maintainability
B
6 hrs
Test Coverage
/*jshint node:true, quotmark:single */
'use strict';

module.exports = function (grunt) {

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        qunit: {
            all: 'test/index.html'
        },
        jshint: {
            options: {
                jshintrc: true
            },
            grunt: 'Gruntfile.js',
            source: 'src/**/*.js',
            tests: 'test/**/*.js'
        },
        uglify: {
            options: {
                banner: '/*! <%= pkg.name %> v<%= pkg.version %> | <%= pkg.license %> */\n'
            },
            build: {
                files: {
                    'build/jquery.cookie-<%= pkg.version %>.min.js': 'src/jquery.cookie.js'
                }
            }
        },
        watch: {
            options: {
                livereload: true
            },
            files: '{src,test}/**/*.js',
            tasks: 'default'
        },
        compare_size: {
            files: [
                'build/jquery.cookie-<%= pkg.version %>.min.js',
                'src/jquery.cookie.js'
            ],
            options: {
                compress: {
                    gz: function (fileContents) {
                        return require('gzip-js').zip(fileContents, {}).length;
                    }
                }
            }
        },
        connect: {
            saucelabs: {
                options: {
                    port: 9999,
                    base: ['.', 'test']
                }
            },
            tests: {
                options: {
                    port: 9998,
                    base: ['.', 'test'],
                    open: 'http://127.0.0.1:9998',
                    keepalive: true,
                    livereload: true
                }
            }
        },
        'saucelabs-qunit': {
            all: {
                options: {
                    urls: ['http://127.0.0.1:9999'],
                    build: process.env.TRAVIS_JOB_ID,
                    browsers: [
                        // iOS
                        {
                            browserName: 'iphone',
                            platform: 'OS X 10.9',
                            version: '7.1'
                        },
                        {
                            browserName: 'ipad',
                            platform: 'OS X 10.9',
                            version: '7.1'
                        },
                        // Android
                        {
                            browserName: 'android',
                            platform: 'Linux',
                            version: '4.3'
                        },
                        // OS X
                        {
                            browserName: 'safari',
                            platform: 'OS X 10.9',
                            version: '7'
                        },
                        {
                            browserName: 'safari',
                            platform: 'OS X 10.8',
                            version: '6'
                        },
                        {
                            browserName: 'firefox',
                            platform: 'OS X 10.9',
                            version: '28'
                        },
                        // Windows
                        {
                            browserName: 'internet explorer',
                            platform: 'Windows 8.1',
                            version: '11'
                        },
                        {
                            browserName: 'internet explorer',
                            platform: 'Windows 8',
                            version: '10'
                        },
                        {
                            browserName: 'internet explorer',
                            platform: 'Windows 7',
                            version: '11'
                        },
                        {
                            browserName: 'internet explorer',
                            platform: 'Windows 7',
                            version: '10'
                        },
                        {
                            browserName: 'internet explorer',
                            platform: 'Windows 7',
                            version: '9'
                        },
                        {
                            browserName: 'internet explorer',
                            platform: 'Windows 7',
                            version: '8'
                        },
                        {
                            browserName: 'firefox',
                            platform: 'Windows 7',
                            version: '29'
                        },
                        {
                            browserName: 'chrome',
                            platform: 'Windows 7',
                            version: '34'
                        },
                        // Linux
                        {
                            browserName: 'firefox',
                            platform: 'Linux',
                            version: '29'
                        }
                    ]
                }
            }
        }
    });

    // Loading dependencies
    for (var key in grunt.file.readJSON('package.json').devDependencies) {
        if (key !== 'grunt' && key.indexOf('grunt') === 0) {
            grunt.loadNpmTasks(key);
        }
    }

    grunt.registerTask('default', ['jshint', 'qunit', 'uglify', 'compare_size']);
    grunt.registerTask('saucelabs', ['connect:saucelabs', 'saucelabs-qunit']);
    grunt.registerTask('ci', ['jshint', 'qunit', 'saucelabs']);
};