From b0ead24af1fb86cbd3af65db9f0e8983d0e8b879 Mon Sep 17 00:00:00 2001 From: David Morse Date: Wed, 20 May 2015 22:00:17 -0600 Subject: [PATCH] add unit test to build process --- Gruntfile.js | 9 ++++++++- package.json | 1 + test/jquery.gridster_test.js | 18 ++++++++++++++---- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 92d071f08..deb676e70 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -132,6 +132,11 @@ module.exports = function(grunt) { watch: { files: ['libs/*.js', 'src/*.js', 'src/*.css', 'Gruntfile.js'], tasks: ['concat', 'uglify', 'cssmin'] + }, + qunit: { + files: [ + 'test/jquery.gridster.html' + ] } }); @@ -142,6 +147,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-cssmin'); + grunt.loadNpmTasks('grunt-contrib-qunit'); grunt.loadNpmTasks('grunt-contrib-yuidoc'); grunt.loadNpmTasks('grunt-bump'); grunt.loadNpmTasks('grunt-conventional-changelog'); @@ -149,7 +155,8 @@ module.exports = function(grunt) { // Default task. grunt.registerTask('default', ['jshint', 'concat', 'uglify', 'cssmin']); - grunt.registerTask('build', ['default']); + grunt.registerTask('build', ['default', 'qunit']); + grunt.registerTask('test', ['jshint','qunit']); grunt.registerTask('docs', ['clean', 'build', 'yuidoc', 'copy:dist', 'gh-pages']); grunt.registerTask('release:patch', ['build', 'bump-only:patch', 'build', 'docs', 'changelog']); diff --git a/package.json b/package.json index e43029ea1..fdab70123 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "grunt-contrib-copy": "^0.8.0", "grunt-contrib-cssmin": "~0.10.0", "grunt-contrib-jshint": "~0.10.0", + "grunt-contrib-qunit": "^0.7.0", "grunt-contrib-uglify": "~0.6.0", "grunt-contrib-watch": "~0.6.1", "grunt-contrib-yuidoc": "~0.7.0", diff --git a/test/jquery.gridster_test.js b/test/jquery.gridster_test.js index f5931d456..91439b32f 100644 --- a/test/jquery.gridster_test.js +++ b/test/jquery.gridster_test.js @@ -305,12 +305,17 @@ equal(grid.is_responsive(), true); }); - test('Gridster.sort_by_row_asc', function (assert) { + test('Gridster.sort_by_row_asc', 4, function (assert) { var sorted = Gridster.sort_by_row_asc(this.serialization); var result = pickup(sorted, 'name').join(','); var expected = 'A,B,D,E,C'; - assert.equal(result, expected); + //since the test data contains 3 #1, they could be in any order + ok( result.substring(0,5).indexOf('A') > -1, 'A is found in within the first 3 results'); + ok( result.substring(0,5).indexOf('B') > -1, 'B is found in within the first 3 results'); + ok( result.substring(0,5).indexOf('D') > -1, 'D is found in within the first 3 results'); + //check the last to chars + equal( result.substring(6), expected.substring(6), 'E,C are the last two - In that order'); }); test('Gridster.sort_by_row_and_col_asc', function (assert) { @@ -329,12 +334,17 @@ assert.equal(result, expected); }); - test('Gridster.sort_by_row_desc', function (assert) { + test('Gridster.sort_by_row_desc',4, function (assert) { var sorted = Gridster.sort_by_row_desc(this.serialization); var result = pickup(sorted, 'name').join(','); var expected = 'C,E,A,B,D'; - assert.equal(result, expected); + //since the test data contains 3 #1, they could be in any order + ok( result.substring(4).indexOf('A') > -1, 'A is found in within the last 3 results'); + ok( result.substring(4).indexOf('B') > -1, 'B is found in within the last 3 results'); + ok( result.substring(4).indexOf('D') > -1, 'D is found in within the last 3 results'); + //check the last to chars + equal( result.substring(0,3), expected.substring(0,3), 'C,E are the first two - In that order'); }); // errors