diff options
Diffstat (limited to 'lib/grunt')
| -rw-r--r-- | lib/grunt/plugins.js | 8 | ||||
| -rw-r--r-- | lib/grunt/utils.js | 32 | 
2 files changed, 40 insertions, 0 deletions
| diff --git a/lib/grunt/plugins.js b/lib/grunt/plugins.js index 363b8698..a269cf82 100644 --- a/lib/grunt/plugins.js +++ b/lib/grunt/plugins.js @@ -61,6 +61,14 @@ module.exports = function(grunt) {      util.startKarma.call(util, this.data, false, this.async());    }); +  grunt.registerTask('webdriver', 'Update webdriver', function() { +    util.updateWebdriver.call(util, this.async()); +  }); + +  grunt.registerMultiTask('runprotractor', 'Run Protractor integration tests', function() { +    util.startProtractor.call(util, this.data, this.async()); +  }); +    grunt.registerTask('collect-errors', 'Combine stripped error files', function () {      util.collectErrors();    }); diff --git a/lib/grunt/utils.js b/lib/grunt/utils.js index 51ebcc70..7b772c34 100644 --- a/lib/grunt/utils.js +++ b/lib/grunt/utils.js @@ -84,6 +84,38 @@ module.exports = {    }, +  updateWebdriver: function(done){ +    var p = spawn('node', ['node_modules/protractor/bin/webdriver-manager', 'update']); +    p.stdout.pipe(process.stdout); +    p.stderr.pipe(process.stderr); +    p.on('exit', function(code){ +      if(code !== 0) grunt.fail.warn('Webdriver failed to update'); +      done(); +    }); +  }, + +  startProtractor: function(config, done){ +    var sauceUser = grunt.option('sauceUser'); +    var sauceKey = grunt.option('sauceKey'); +    var tunnelIdentifier = grunt.option('capabilities.tunnel-identifier'); +    var sauceBuild = grunt.option('capabilities.build'); +    var args = ['node_modules/protractor/bin/protractor', config]; +    if (sauceUser) args.push('--sauceUser=' + sauceUser); +    if (sauceKey) args.push('--sauceKey=' + sauceKey); +    if (tunnelIdentifier) args.push('--capabilities.tunnel-identifier=' + tunnelIdentifier); +    if (sauceBuild) args.push('--capabilities.build=' + sauceBuild); + + +    var p = spawn('node', args); +    p.stdout.pipe(process.stdout); +    p.stderr.pipe(process.stderr); +    p.on('exit', function(code){ +      if(code !== 0) grunt.fail.warn('Protractor test(s) failed. Exit code: ' + code); +      done(); +    }); +  }, + +    wrap: function(src, name){      src.unshift('src/' + name + '.prefix');      src.push('src/' + name + '.suffix'); | 
