From 19a4d1e644d780494dd1956b18430b0143259f68 Mon Sep 17 00:00:00 2001 From: James Talmage Date: Wed, 21 Aug 2013 19:17:07 -0400 Subject: [PATCH] Added Promises/A+ Test Suite to the build --- Gruntfile.js | 19 ++++++++++++++++++- package.json | 4 +++- promise-test-adapter.js | 15 +++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 promise-test-adapter.js diff --git a/Gruntfile.js b/Gruntfile.js index daf5f24edc04..00712c3b2448 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -11,6 +11,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-ddescribe-iit'); grunt.loadNpmTasks('grunt-merge-conflict'); grunt.loadNpmTasks('grunt-parallel'); + grunt.loadNpmTasks('grunt-shell'); grunt.loadTasks('lib/grunt'); var NG_VERSION = util.getVersion(); @@ -171,6 +172,10 @@ module.exports = function(grunt) { cookies: { dest: 'build/angular-cookies.js', src: util.wrap(['src/ngCookies/cookies.js'], 'module') + }, + promiseAdapter: { + dest:'build/promise-adapter.js', + src:['src/ng/q.js','promise-test-adapter.js'] } }, @@ -227,6 +232,17 @@ module.exports = function(grunt) { } }, + shell:{ + testPromises:{ + options:{ + stderr:true, + failOnError:true + }, + command:'./node_modules/.bin/promises-aplus-tests build/promise-adapter.js' + } + + }, + write: { versionTXT: {file: 'build/version.txt', val: NG_VERSION.full}, @@ -236,7 +252,7 @@ module.exports = function(grunt) { //alias tasks - grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['package','test:unit', 'tests:docs', 'test:e2e']); + grunt.registerTask('test', 'Run unit, docs and e2e tests with Karma', ['package','test:unit','shell:testPromises', 'tests:docs', 'test:e2e']); grunt.registerTask('test:jqlite', 'Run the unit tests with Karma' , ['tests:jqlite']); grunt.registerTask('test:jquery', 'Run the jQuery unit tests with Karma', ['tests:jquery']); grunt.registerTask('test:modules', 'Run the Karma module tests with Karma', ['tests:modules']); @@ -244,6 +260,7 @@ module.exports = function(grunt) { grunt.registerTask('test:unit', 'Run unit, jQuery and Karma module tests with Karma', ['tests:jqlite', 'tests:jquery', 'tests:modules']); grunt.registerTask('test:e2e', 'Run the end to end tests with Karma and keep a test server running in the background', ['connect:testserver', 'tests:end2end']); grunt.registerTask('test:docgen', ['jasmine-node']); + grunt.registerTask('test:promises',['build:promiseAdapter','shell:testPromises']); grunt.registerTask('minify', ['bower','clean', 'build', 'minall']); grunt.registerTask('webserver', ['connect:devserver']); diff --git a/package.json b/package.json index 57c85dfc3cf9..ee7cb93e835f 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,9 @@ "grunt-contrib-jasmine-node": "~0.1.1", "grunt-parallel": "~0.2.0", "grunt-ddescribe-iit": "~0.0.1", - "grunt-merge-conflict": "~0.0.1" + "grunt-merge-conflict": "~0.0.1", + "promises-aplus-tests": "~1.3.2", + "grunt-shell": "~0.3.1" }, "licenses": [ { diff --git a/promise-test-adapter.js b/promise-test-adapter.js new file mode 100644 index 000000000000..08a917384934 --- /dev/null +++ b/promise-test-adapter.js @@ -0,0 +1,15 @@ + + +var Q = qFactory(process.nextTick,null); + +exports.fulfilled = Q.resolve; +exports.rejected = Q.reject; +exports.pending = function () { + var deferred = Q.defer(); + + return { + promise: deferred.promise, + fulfill: deferred.resolve, + reject: deferred.reject + }; +}; \ No newline at end of file