]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Initial test setup
authorEvert Timberg <evert.timberg@gmail.com>
Sun, 23 Aug 2015 18:58:19 +0000 (14:58 -0400)
committerEvert Timberg <evert.timberg@gmail.com>
Sun, 23 Aug 2015 18:58:19 +0000 (14:58 -0400)
gulpfile.js
karma.conf.js [new file with mode: 0644]
package.json

index 9ce3dc3f4bb2535dccd589ae39ed1b98f18efc10..d7dda48bf52231b288b53b89277714c53863d996 100644 (file)
@@ -1,52 +1,55 @@
 var gulp = require('gulp'),
-    concat = require('gulp-concat'),
-    uglify = require('gulp-uglify'),
-    util = require('gulp-util'),
-    jshint = require('gulp-jshint'),
-    size = require('gulp-size'),
-    connect = require('gulp-connect'),
-    replace = require('gulp-replace'),
-    htmlv = require('gulp-html-validator'),
-    inquirer = require('inquirer'),
-    semver = require('semver'),
-    exec = require('child_process').exec,
-    fs = require('fs'),
-    package = require('./package.json'),
-    bower = require('./bower.json');
+       concat = require('gulp-concat'),
+       uglify = require('gulp-uglify'),
+       util = require('gulp-util'),
+       jshint = require('gulp-jshint'),
+       size = require('gulp-size'),
+       connect = require('gulp-connect'),
+       replace = require('gulp-replace'),
+       htmlv = require('gulp-html-validator'),
+       inquirer = require('inquirer'),
+       semver = require('semver'),
+       exec = require('child_process').exec,
+       fs = require('fs'),
+       package = require('./package.json'),
+       bower = require('./bower.json'),
+       karma = require('gulp-karma');
 
 var srcDir = './src/';
+var testDir = './test/';
 /*
  *  Usage : gulp build --types=Bar,Line,Doughnut
  *  Output: - A built Chart.js file with Core and types Bar, Line and Doughnut concatenated together
  *          - A minified version of this code, in Chart.min.js
  */
 
+var srcFiles = [
+               './src/core/core.js',
+               './src/core/core.helpers.js',
+               './src/core/core.chart.js',
+               './src/core/core.element.js',
+               './src/core/**',
+               './src/controllers/**',
+               './src/scales/**',
+               './src/elements/**',
+               './src/charts/**',
+               './node_modules/color/dist/color.min.js'
+       ];
+
 gulp.task('build', function() {
 
-    var srcFiles = [
-            './src/core/core.js',
-            './src/core/core.helpers.js',
-            './src/core/core.chart.js',
-            './src/core/core.element.js',
-            './src/core/**',
-            './src/controllers/**',
-            './src/scales/**',
-            './src/elements/**',
-            './src/charts/**',
-            './node_modules/color/dist/color.min.js'
-        ],
-        isCustom = !!(util.env.types),
-        outputDir = (isCustom) ? 'custom' : '.';
-
-    return gulp.src(srcFiles)
-        .pipe(concat('Chart.js'))
-        .pipe(replace('{{ version }}', package.version))
-        .pipe(gulp.dest(outputDir))
-        .pipe(uglify({
-            preserveComments: 'some'
-        }))
-        .pipe(concat('Chart.min.js'))
-        .pipe(gulp.dest(outputDir));
+       var isCustom = !!(util.env.types),
+               outputDir = (isCustom) ? 'custom' : '.';
+
+       return gulp.src(srcFiles)
+               .pipe(concat('Chart.js'))
+               .pipe(replace('{{ version }}', package.version))
+               .pipe(gulp.dest(outputDir))
+               .pipe(uglify({
+                       preserveComments: 'some'
+               }))
+               .pipe(concat('Chart.min.js'))
+               .pipe(gulp.dest(outputDir));
 
 });
 
@@ -57,66 +60,80 @@ gulp.task('build', function() {
  */
 
 gulp.task('bump', function(complete) {
-    util.log('Current version:', util.colors.cyan(package.version));
-    var choices = ['major', 'premajor', 'minor', 'preminor', 'patch', 'prepatch', 'prerelease'].map(function(versionType) {
-        return versionType + ' (v' + semver.inc(package.version, versionType) + ')';
-    });
-    inquirer.prompt({
-        type: 'list',
-        name: 'version',
-        message: 'What version update would you like?',
-        choices: choices
-    }, function(res) {
-        var increment = res.version.split(' ')[0],
-            newVersion = semver.inc(package.version, increment);
-
-        // Set the new versions into the bower/package object
-        package.version = newVersion;
-        bower.version = newVersion;
-
-        // Write these to their own files, then build the output
-        fs.writeFileSync('package.json', JSON.stringify(package, null, 2));
-        fs.writeFileSync('bower.json', JSON.stringify(bower, null, 2));
-
-        complete();
-    });
+       util.log('Current version:', util.colors.cyan(package.version));
+       var choices = ['major', 'premajor', 'minor', 'preminor', 'patch', 'prepatch', 'prerelease'].map(function(versionType) {
+               return versionType + ' (v' + semver.inc(package.version, versionType) + ')';
+       });
+       inquirer.prompt({
+               type: 'list',
+               name: 'version',
+               message: 'What version update would you like?',
+               choices: choices
+       }, function(res) {
+               var increment = res.version.split(' ')[0],
+                       newVersion = semver.inc(package.version, increment);
+
+               // Set the new versions into the bower/package object
+               package.version = newVersion;
+               bower.version = newVersion;
+
+               // Write these to their own files, then build the output
+               fs.writeFileSync('package.json', JSON.stringify(package, null, 2));
+               fs.writeFileSync('bower.json', JSON.stringify(bower, null, 2));
+
+               complete();
+       });
 });
 
 gulp.task('release', ['build'], function() {
-    exec('git tag -a v' + package.version);
+       exec('git tag -a v' + package.version);
 });
 
 gulp.task('jshint', function() {
-    return gulp.src(srcDir + '*.js')
-        .pipe(jshint())
-        .pipe(jshint.reporter('default'));
+       return gulp.src(srcDir + '*.js')
+               .pipe(jshint())
+               .pipe(jshint.reporter('default'));
 });
 
 gulp.task('valid', function() {
-    return gulp.src('samples/*.html')
-        .pipe(htmlv());
+       return gulp.src('samples/*.html')
+               .pipe(htmlv());
+});
+
+gulp.task('unittest', function() {
+       var files = srcFiles.slice();
+       files.push(testDir + '*.js');
+
+       return gulp.src(files)
+               .pipe(karma({
+                       configFile: 'karma.conf.js',
+                       action: 'run'
+               }))
+               .on('error', function(err) {
+                       throw err;
+               });
 });
 
 gulp.task('library-size', function() {
-    return gulp.src('Chart.min.js')
-        .pipe(size({
-            gzip: true
-        }));
+       return gulp.src('Chart.min.js')
+               .pipe(size({
+                       gzip: true
+               }));
 });
 
 gulp.task('module-sizes', function() {
-    return gulp.src(srcDir + '*.js')
-        .pipe(uglify({
-            preserveComments: 'some'
-        }))
-        .pipe(size({
-            showFiles: true,
-            gzip: true
-        }));
+       return gulp.src(srcDir + '*.js')
+               .pipe(uglify({
+                       preserveComments: 'some'
+               }))
+               .pipe(size({
+                       showFiles: true,
+                       gzip: true
+               }));
 });
 
 gulp.task('watch', function() {
-    gulp.watch('./src/**', ['build']);
+       gulp.watch('./src/**', ['build']);
 });
 
 gulp.task('test', ['jshint', 'valid']);
@@ -126,15 +143,15 @@ gulp.task('size', ['library-size', 'module-sizes']);
 gulp.task('default', ['build', 'watch']);
 
 gulp.task('server', function() {
-    connect.server({
-        port: 8000
-    });
+       connect.server({
+               port: 8000
+       });
 });
 
 // Convenience task for opening the project straight from the command line
 gulp.task('_open', function() {
-    exec('open http://localhost:8000');
-    exec('subl .');
+       exec('open http://localhost:8000');
+       exec('subl .');
 });
 
 gulp.task('dev', ['server', 'default']);
diff --git a/karma.conf.js b/karma.conf.js
new file mode 100644 (file)
index 0000000..a0d6030
--- /dev/null
@@ -0,0 +1,9 @@
+module.exports = function(config) {
+       config.set({
+               autoWatch: false,
+               browsers: ['Chrome', 'Firefox'],
+               frameworks: ['jasmine'],
+               reporters: ['progress'],
+               singleRun: false
+       });
+};
\ No newline at end of file
index cf30a62270ead413323d1b9061f8d86c2e316993..27ed2888b1ab96c419525fde6776bf4746ca23b3 100644 (file)
@@ -1,31 +1,38 @@
 {
-    "name": "chart.js",
-    "homepage": "http://www.chartjs.org",
-    "description": "Simple HTML5 charts using the canvas element.",
-    "version": "2.0.0-alpha",
-    "main": "Chart.js",
-    "repository": {
-        "type": "git",
-        "url": "https://github.com/nnnick/Chart.js.git"
-    },
-    "dependences": {},
-    "devDependencies": {
-        "color": "git://github.com/chartjs/color",
-        "gulp": "3.5.x",
-        "gulp-concat": "~2.1.x",
-        "gulp-connect": "~2.0.5",
-        "gulp-html-validator": "^0.0.2",
-        "gulp-jshint": "~1.5.1",
-        "gulp-replace": "^0.4.0",
-        "gulp-size": "~0.4.0",
-        "gulp-uglify": "~0.2.x",
-        "gulp-util": "~2.2.x",
-        "inquirer": "^0.5.1",
-        "jquery": "^2.1.4",
-        "onecolor": "^2.5.0",
-        "semver": "^3.0.1"
-    },
-    "spm": {
-        "main": "Chart.js"
-    }
+  "name": "chart.js",
+  "homepage": "http://www.chartjs.org",
+  "description": "Simple HTML5 charts using the canvas element.",
+  "version": "2.0.0-alpha",
+  "main": "Chart.js",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/nnnick/Chart.js.git"
+  },
+  "dependences": {},
+  "devDependencies": {
+    "color": "git://github.com/chartjs/color",
+    "gulp": "3.5.x",
+    "gulp-concat": "~2.1.x",
+    "gulp-connect": "~2.0.5",
+    "gulp-html-validator": "^0.0.2",
+    "gulp-jshint": "~1.5.1",
+    "gulp-karma": "0.0.4",
+    "gulp-replace": "^0.4.0",
+    "gulp-size": "~0.4.0",
+    "gulp-uglify": "~0.2.x",
+    "gulp-util": "~2.2.x",
+    "inquirer": "^0.5.1",
+    "jasmine": "^2.3.2",
+    "jasmine-core": "^2.3.4",
+    "jquery": "^2.1.4",
+    "karma": "^0.12.37",
+    "karma-chrome-launcher": "^0.2.0",
+    "karma-firefox-launcher": "^0.1.6",
+    "karma-jasmine": "^0.3.6",
+    "onecolor": "^2.5.0",
+    "semver": "^3.0.1"
+  },
+  "spm": {
+    "main": "Chart.js"
+  }
 }