diff --git a/gulp/tasks/dist.js b/gulp/tasks/dist.js index 65e9f3278..104544b1b 100644 --- a/gulp/tasks/dist.js +++ b/gulp/tasks/dist.js @@ -24,7 +24,7 @@ gulp.task('slimDist', function() { // Single entry point to browserify return gulp.src('src/main.js') .pipe(browserify()) - /*.pipe(browserify({standalone: 'mermaid'})) + /*.pipe(browserify({standalone: 'mermaid'})) .on('prebundle', function(bundle) { // Keep these external for the slim version. slim_ext_libs.forEach(function(lib) { @@ -68,13 +68,14 @@ gulp.task('mermaid.slim',function() { return gulp.src('src/mermaid.js') .pipe(browserify({ external: ['d3'], - entry:'src/mermaid.js' + entry:'src/mermaid.js', + standalone: 'mermaid' })) .pipe(rename('mermaid.slim.js')) // .on('prebundle', function(bundle){ // EXTERNALS.forEach(function(external){ // if(external.expose){ - // bundle.require(external.require, {expose: external.expose} ) + // bundle.require(external.require, {expose: external.expose} ) // } // else{ // bundle.require(external.require) @@ -92,7 +93,8 @@ gulp.task('mermaid',function() { return gulp.src('src/mermaid.js') .pipe(browserify({ - entry:'src/mermaid.js' + entry:'src/mermaid.js', + standalone: 'mermaid' })) .pipe(rename('mermaid.js')) .pipe(gulp.dest('./dist/')) diff --git a/gulp/tasks/test.js b/gulp/tasks/test.js index 037f74f4a..5b9afdba2 100644 --- a/gulp/tasks/test.js +++ b/gulp/tasks/test.js @@ -14,6 +14,9 @@ var insert = require('gulp-insert'); var jshint = require('gulp-jshint'); var stylish = require('jshint-stylish'); +var qunit = require('gulp-qunit'); +var bower = require('gulp-bower'); + // Using gulp-jshint and jshint-stylish gulp.task('lint', function() { return gulp.src(['./src/**/*.js', '!**/parser/*.js']) @@ -21,7 +24,7 @@ gulp.task('lint', function() { .pipe(jshint.reporter(stylish)); }); -gulp.task('test',['coverage','tape','jasmine']); +gulp.task('test',['coverage','tape','jasmine','qunit']); gulp.task('jasmine',['jison','lint'], function () { return gulp.src(['src/**/*.spec.js']) @@ -44,4 +47,14 @@ gulp.task('coverage', function (cb) { .pipe(istanbul.writeReports()) // Creating the reports after tests runned .on('end', cb); }); -}); \ No newline at end of file +}); + +gulp.task('qunit', ['usageTestsBower'], function() { + return gulp.src('test/usageTests/requireTest.html') + .pipe(qunit()); +}); + +gulp.task('usageTestsBower', function() { + return bower({cwd: 'test/usageTests'}) + .pipe(gulp.dest('test/usageTests/bower_components')); +}); diff --git a/package.json b/package.json index ce9ce6045..e285caf7d 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "mermaid": "./bin/mermaid.js" }, "scripts": { - "test": "gulp test" + "test": "./node_modules/.bin/gulp dist && ./node_modules/.bin/gulp test" }, "repository": { "type": "git", @@ -46,6 +46,7 @@ "foundation": "^4.2.1-1", "front-matter": "^0.2.0", "gulp": "~3.8.9", + "gulp-bower": "0.0.10", "gulp-browserify": "^0.5.0", "gulp-bump": "^0.1.11", "gulp-concat": "~2.4.1", @@ -61,6 +62,7 @@ "gulp-jshint": "^1.9.0", "gulp-less": "^3.0.1", "gulp-livereload": "^3.8.0", + "gulp-qunit": "~1.2.1", "gulp-rename": "~1.2.0", "gulp-shell": "^0.2.10", "gulp-tag-version": "^1.2.1", diff --git a/test/usageTests/bower.json b/test/usageTests/bower.json index 3ce3f744f..dea677072 100644 --- a/test/usageTests/bower.json +++ b/test/usageTests/bower.json @@ -15,6 +15,7 @@ ], "dependencies": { "requirejs": "~2.1.16", - "mermaid": "~0.4.0" + "mermaid": "~0.4.0", + "qunit": "~1.18.0" } } diff --git a/test/usageTests/reqJsApp.js b/test/usageTests/reqJsApp.js index 313cabb41..4c9290f24 100644 --- a/test/usageTests/reqJsApp.js +++ b/test/usageTests/reqJsApp.js @@ -1,22 +1,28 @@ require.config({ - baseUrl: '.', paths: { - // the left side is the module ID, - // the right side is the path to - // the jQuery file, relative to baseUrl. - // Also, the path should NOT include - // the '.js' file extension. This example - // is using jQuery 1.9.0 located at - // js/lib/jquery-1.9.0.js, relative to - // the HTML page. - mermaid: 'bower_components/mermaid/dist/mermaid.full' + mermaid: '../../dist/mermaid' + }, + shim: { + mermaid: { + exports: 'mermaid' + } } }); -// Start the main app logic. -requirejs(['simple','mermaid'], - function (simple) { - //jQuery, canvas and the app/sub module are all - //loaded and can be used here now. - mermaid.init(); - }); \ No newline at end of file +require([], function (){ + QUnit.module('requireTest.html'); + + QUnit.test('using mermaid in requirejs', function (assert){ + var done = assert.async(); + require(['mermaid'], function (mermaid) { + assert.ok(mermaid, 'mermaid is not null'); + mermaid.init(); + assert.equal(window.d3.selectAll('path')[0].length, 8, + 'drew 8 paths'); + done(); + }); + }); + + QUnit.load(); + QUnit.start(); +}); diff --git a/test/usageTests/requireTest.html b/test/usageTests/requireTest.html index 758d30298..2fbfb5f27 100644 --- a/test/usageTests/requireTest.html +++ b/test/usageTests/requireTest.html @@ -2,41 +2,26 @@ + + + + + - - - TEST 0.4.1 -
- graph TD; - sq[Square shape2] --> ci((Circle shape // Начало)) -
-

Shapes

-
- info -
-
-graph LR - A[Square Rect] -- Link text --> B((Circle)) - A --> C(Round Rect) - B --> D{Rhombus} - C --> D -
-
- graph TD; - sq[Square shape]-->ci((Circle shape)); - od>Odd shape]---|Two line
edge comment|ro; - od2>Really long text in an Odd shape]-->od3>Really long text with linebreak
in an Odd shape]; - di{Diamond is
broken}-->ro(Rounded
square
shape); - di-->ro2(Rounded square shape); - e((Inner circle URL))-->f(,.?!+-*ز); - style e red; -
- + +
+
+
+ graph LR + A-->B + B-->C + C-->A + D-->C +
+