From 37dbcd83a4535a343e8e9656328f3c8006fab5f1 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Tue, 5 Mar 2013 12:59:03 -0500 Subject: [PATCH 1/9] changing paths back to `src` from `tmp` in Gruntfile --- Gruntfile.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index e0123b2c0b..f589757f11 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -24,9 +24,9 @@ module.exports = function (grunt) { concat: { dist: { src: [ - 'tmp/intro.js', + 'src/intro.js', - 'tmp/core.js', + 'src/core.js', 'src/tableView.js', 'src/helpers.js', 'src/fillHandle.js', From aa7b1dff590eb93a0be1af7aefb5da40b07523cc Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 13:48:14 -0500 Subject: [PATCH 2/9] starting testing with grunt --- .gitignore | 4 +- Gruntfile.js | 145 +++++++++++++++++++++++++++++++++------------------ package.json | 5 +- 3 files changed, 100 insertions(+), 54 deletions(-) diff --git a/.gitignore b/.gitignore index 34977ee7df..ea6f62b330 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ node_modules -.idea \ No newline at end of file +.idea +_SpecRunner.html + diff --git a/Gruntfile.js b/Gruntfile.js index f589757f11..0a99e982a8 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -21,79 +21,102 @@ module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), - concat: { - dist: { - src: [ - 'src/intro.js', - - 'src/core.js', - 'src/tableView.js', - 'src/helpers.js', - 'src/fillHandle.js', - 'src/undoRedo.js', - 'src/selectionPoint.js', - - 'src/renderers/textRenderer.js', - 'src/renderers/autocompleteRenderer.js', - 'src/renderers/checkboxRenderer.js', - 'src/renderers/numericRenderer.js', + meta: { + src: [ + 'src/core.js', + 'src/tableView.js', + 'src/helpers.js', + 'src/fillHandle.js', + 'src/undoRedo.js', + 'src/selectionPoint.js', - 'src/editors/textEditor.js', - 'src/editors/autocompleteEditor.js', - 'src/editors/checkboxEditor.js', - 'src/editors/dateEditor.js', + 'src/renderers/textRenderer.js', + 'src/renderers/autocompleteRenderer.js', + 'src/renderers/checkboxRenderer.js', + 'src/renderers/numericRenderer.js', - 'src/cellTypes.js', + 'src/editors/textEditor.js', + 'src/editors/autocompleteEditor.js', + 'src/editors/checkboxEditor.js', + 'src/editors/dateEditor.js', + + 'src/cellTypes.js', - 'src/pluginHooks.js', - 'src/plugins/autoColumnSize.js', - 'src/plugins/columnSorting.js', - 'src/plugins/contextMenu.js', - 'src/plugins/legacy.js', - 'src/plugins/manualColumnMove.js', - 'src/plugins/manualColumnResize.js', + 'src/pluginHooks.js', + 'src/plugins/autoColumnSize.js', + 'src/plugins/columnSorting.js', + 'src/plugins/contextMenu.js', + 'src/plugins/legacy.js', + 'src/plugins/manualColumnMove.js', + 'src/plugins/manualColumnResize.js', - 'src/3rdparty/jquery.autoresize.js', - 'src/3rdparty/sheetclip.js', - 'src/3rdparty/walkontable.js', - 'src/3rdparty/copypaste.js', - - 'src/outro.js' - ], - dest: 'jquery.handsontable.js' + 'src/3rdparty/jquery.autoresize.js', + 'src/3rdparty/sheetclip.js', + 'src/3rdparty/walkontable.js', + 'src/3rdparty/copypaste.js', + ], + vendor: [ + 'lib/bootstrap-typeahead.js', + 'lib/numeral.js', + 'lib/jQuery-contextMenu/jquery.contextMenu.js' + // seems to have no effect when turned off on contextmenu.html + //'lib/jQuery-contextMenu/jquery.ui.position.js' + ] + }, + + concat: { + dist: { + files: { + 'jquery.handsontable.js': [ + 'src/intro.js', + '<%= meta.src %>', + 'src/outro.js' + ] + } }, full_js: { - src: [ - 'jquery.handsontable.js', - 'lib/bootstrap-typeahead.js', - 'lib/numeral.js', - 'lib/jQuery-contextMenu/jquery.contextMenu.js' - //'lib/jQuery-contextMenu/jquery.ui.position.js' //seems to have no effect when turned off on contextmenu.html - ], - dest: 'dist/jquery.handsontable.full.js' + files: { + 'dist/jquery.handsontable.full.js': [ + 'jquery.handsontable.js', + '<%= meta.vendor %>' + ] + } }, full_css: { - src: [ - 'jquery.handsontable.css', - 'lib/jQuery-contextMenu/jquery.contextMenu.css' - ], - dest: 'dist/jquery.handsontable.full.css' + files: { + 'dist/jquery.handsontable.full.css': [ + 'jquery.handsontable.css', + 'lib/jQuery-contextMenu/jquery.contextMenu.css' + ] + } } }, + watch: { - files: ['src/*', 'src/editors/*', 'src/plugins/*', 'src/renderers/*', 'src/3rdparty/*', 'src/css/*', 'lib/*'], + files: [ + 'src/*', + 'src/editors/*', + 'src/plugins/*', + 'src/renderers/*', + 'src/3rdparty/*', + 'src/css/*', + 'lib/*' + ], tasks: ['replace', 'concat', 'clean'] }, + clean: { dist: ['tmp'] }, + replace: { dist: { options: { variables: { version: '<%= pkg.version %>', timestamp: '<%= (new Date()).toString() %>' - } + }, + prefix: '@@' }, files: { 'tmp/intro.js': 'src/intro.js', @@ -101,14 +124,34 @@ module.exports = function (grunt) { 'jquery.handsontable.css': 'src/css/jquery.handsontable.css' } } + }, + + jasmine: { + src: [ + 'lib/jquery.min.js', + // '<%= meta.src %>', + 'jquery.handsontable.js', + 'lib/bootstrap-typeahead.js', + 'lib/numeral.js', + 'lib/jQuery-contextMenu/jquery.contextMenu.js', + 'test/jasmine/spec/SpecHelper.js' + ], + options: { + specs: [ + 'test/jasmine/spec/*Spec.js', + 'test/jasmine/spec/*/*Spec.js' + ] + } } }); // Default task. grunt.registerTask('default', ['replace', 'concat', 'clean']); + grunt.registerTask('test', ['default', 'jasmine']); grunt.loadNpmTasks('grunt-replace'); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-jasmine'); }; \ No newline at end of file diff --git a/package.json b/package.json index 00e52e22f8..3ffb14d8a4 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,10 @@ "version": "0.8.10", "devDependencies": { "grunt": "~0.4.0", - "grunt-replace": "~0.3.2", + "grunt-replace": "~0.4.0", "grunt-contrib-clean": "~0.4.0", "grunt-contrib-concat": "~0.1.0", - "grunt-contrib-watch": "~0.2.0" + "grunt-contrib-watch": "~0.2.0", + "grunt-contrib-jasmine": "~0.3.3" } } \ No newline at end of file From a814a5d36a9902a890f7c8eeeef8594ee8900714 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 14:15:25 -0500 Subject: [PATCH 3/9] mostly fixing gruntfile --- .gitignore | 1 + Gruntfile.js | 9 ++++++++- test/JqueryHandsontableRunner.tmpl | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 test/JqueryHandsontableRunner.tmpl diff --git a/.gitignore b/.gitignore index ea6f62b330..f6963c5503 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ node_modules .idea _SpecRunner.html +.grunt diff --git a/Gruntfile.js b/Gruntfile.js index 0a99e982a8..cd70ad256e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -140,7 +140,14 @@ module.exports = function (grunt) { specs: [ 'test/jasmine/spec/*Spec.js', 'test/jasmine/spec/*/*Spec.js' - ] + ], + template: 'test/JqueryHandsontableRunner.tmpl', + templateOptions: { + css: [ + 'lib/jQuery-contextMenu/jquery.contextMenu.css', + 'jquery.handsontable.css', + ] + } } } }); diff --git a/test/JqueryHandsontableRunner.tmpl b/test/JqueryHandsontableRunner.tmpl new file mode 100644 index 0000000000..a8bac9714f --- /dev/null +++ b/test/JqueryHandsontableRunner.tmpl @@ -0,0 +1,21 @@ + + + + + Jasmine Spec Runner +<% css.forEach(function(style){ %> + +<% }) %> + + + + +<% with (scripts) { %> + <% [].concat(jasmine, vendor, helpers, src, specs, reporters, start).forEach(function(script){ %> + + <% }) %> +<% }; %> + + + + From 7b866d4ca4ea7845ef3e4b6e80d06498037edcb4 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 14:20:57 -0500 Subject: [PATCH 4/9] initial stab at travis --- .travis.yml | 8 ++++++++ package.json | 3 ++- test/JqueryHandsontableRunner.tmpl | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..1c06edb233 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,8 @@ +language: node_js + +node_js: + - "0.8" + +before_script: + - "export DISPLAY=:99.0" + - "sh -e /etc/init.d/xvfb start" diff --git a/package.json b/package.json index 3ffb14d8a4..2a1b299380 100644 --- a/package.json +++ b/package.json @@ -14,5 +14,6 @@ "grunt-contrib-concat": "~0.1.0", "grunt-contrib-watch": "~0.2.0", "grunt-contrib-jasmine": "~0.3.3" - } + }, + "test": "grunt test" } \ No newline at end of file diff --git a/test/JqueryHandsontableRunner.tmpl b/test/JqueryHandsontableRunner.tmpl index a8bac9714f..8a68257e02 100644 --- a/test/JqueryHandsontableRunner.tmpl +++ b/test/JqueryHandsontableRunner.tmpl @@ -8,7 +8,7 @@ <% }) %> - + <% with (scripts) { %> <% [].concat(jasmine, vendor, helpers, src, specs, reporters, start).forEach(function(script){ %> From f03104504f409b986d63686a91abd3b1c733d7f5 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 14:28:00 -0500 Subject: [PATCH 5/9] fixing up README with badge, package with npm script:test --- README.md | 1 + package.json | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e9d61a154..e1a1a0fed1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Handsontable +[![Build Status](https://travis-ci.org/bollwyvl/jquery-handsontable.png?branch=travis-testing)](https://travis-ci.org/bollwyvl/jquery-handsontable) Handsontable is a minimalistic approach to Excel-like table editor in HTML & jQuery. Requires jQuery 1.7+. Runs in IE7, IE8, IE9, Firefox, Chrome, Safari and Opera. diff --git a/package.json b/package.json index 2a1b299380..7100cafcb2 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,7 @@ "grunt-contrib-watch": "~0.2.0", "grunt-contrib-jasmine": "~0.3.3" }, - "test": "grunt test" + "scripts":{ + "test": "grunt test -v" + } } \ No newline at end of file From f1941c01417460d80add05c0eee5735c670381e5 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 14:31:12 -0500 Subject: [PATCH 6/9] adding grunt-cli to package.json for travis --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 7100cafcb2..5abf721a1e 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "version": "0.8.10", "devDependencies": { "grunt": "~0.4.0", + "grunt-cli": "~0.1.6", "grunt-replace": "~0.4.0", "grunt-contrib-clean": "~0.4.0", "grunt-contrib-concat": "~0.1.0", From df43ff71cac542c0baa6aba8ae95ef03f3049603 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 15:33:24 -0500 Subject: [PATCH 7/9] renaming a few Specs --- test/jasmine/SpecRunner.html | 4 ++-- test/jasmine/spec/{Core_alter.js => Core_alterSpec.js} | 0 test/jasmine/spec/{Core_view.js => Core_viewSpec.js} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename test/jasmine/spec/{Core_alter.js => Core_alterSpec.js} (100%) rename test/jasmine/spec/{Core_view.js => Core_viewSpec.js} (100%) diff --git a/test/jasmine/SpecRunner.html b/test/jasmine/SpecRunner.html index dae72caeb9..699647d4e6 100644 --- a/test/jasmine/SpecRunner.html +++ b/test/jasmine/SpecRunner.html @@ -34,8 +34,8 @@ - - + + diff --git a/test/jasmine/spec/Core_alter.js b/test/jasmine/spec/Core_alterSpec.js similarity index 100% rename from test/jasmine/spec/Core_alter.js rename to test/jasmine/spec/Core_alterSpec.js diff --git a/test/jasmine/spec/Core_view.js b/test/jasmine/spec/Core_viewSpec.js similarity index 100% rename from test/jasmine/spec/Core_view.js rename to test/jasmine/spec/Core_viewSpec.js From 579810d51197b8171c60c91a9dc7009cc5c54629 Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Wed, 6 Mar 2013 15:41:36 -0500 Subject: [PATCH 8/9] putting tmp/ back in for core, intro --- Gruntfile.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index cd70ad256e..2165c96cdd 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -23,7 +23,7 @@ module.exports = function (grunt) { pkg: grunt.file.readJSON('package.json'), meta: { src: [ - 'src/core.js', + 'tmp/core.js', 'src/tableView.js', 'src/helpers.js', 'src/fillHandle.js', @@ -68,7 +68,7 @@ module.exports = function (grunt) { dist: { files: { 'jquery.handsontable.js': [ - 'src/intro.js', + 'tmp/intro.js', '<%= meta.src %>', 'src/outro.js' ] @@ -115,8 +115,7 @@ module.exports = function (grunt) { variables: { version: '<%= pkg.version %>', timestamp: '<%= (new Date()).toString() %>' - }, - prefix: '@@' + } }, files: { 'tmp/intro.js': 'src/intro.js', From 9ffda82baaa791b6d5a1a948386deacacc5635bb Mon Sep 17 00:00:00 2001 From: "Nicholas Bollweg (Nick)" Date: Thu, 7 Mar 2013 14:21:48 -0500 Subject: [PATCH 9/9] moving grunt-cli from package.json to .travis.yml --- .travis.yml | 1 + package.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1c06edb233..057ad4a196 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,3 +6,4 @@ node_js: before_script: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" + - "npm install -g grunt-cli" diff --git a/package.json b/package.json index 5abf721a1e..7100cafcb2 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ "version": "0.8.10", "devDependencies": { "grunt": "~0.4.0", - "grunt-cli": "~0.1.6", "grunt-replace": "~0.4.0", "grunt-contrib-clean": "~0.4.0", "grunt-contrib-concat": "~0.1.0",