Skip to content

Commit

Permalink
Added webmidi engine tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jazz-soft committed May 17, 2019
1 parent df4bd2b commit 3dff55c
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 12 deletions.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "MIDI library for Node.js and web-browsers",
"main": "javascript/JZZ.js",
"scripts": {
"test": "nyc mocha test/common.js && nyc --no-clean mocha test/engine1.js && nyc --no-clean mocha test/engine2.js",
"test": "nyc mocha test/common.js && nyc --no-clean mocha test/engine1.js && nyc --no-clean mocha test/engine2.js && nyc --no-clean mocha test/engine3.js",
"lint": "eslint javascript test",
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
Expand All @@ -27,7 +27,8 @@
"grunt-contrib-uglify": "^4.0.1",
"midi-test": "^1.0.4",
"mocha": "^6.1.4",
"nyc": "^14.1.1"
"nyc": "^14.1.1",
"web-midi-test": "^0.0.1"
},
"repository": {
"type": "git",
Expand Down
4 changes: 2 additions & 2 deletions test/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ function Sample(done, list) {
};
}

var test = require('./tests.js')(JZZ, { engine: ['webmidi', 'none'] }, 'none');
var test = require('./tests.js')(JZZ, { engine: ['webmidi', 'none'] });

describe('Info', function() {
console.log('Node:', process.versions.node);
Expand Down Expand Up @@ -340,7 +340,7 @@ describe('JZZ.Widget', function() {
});

describe('Engine: none', function() {
test.engine_name();
test.engine_name('none', true);
test.non_existent_midi_in();
test.non_existent_midi_out();
test.widget_midi_in();
Expand Down
4 changes: 2 additions & 2 deletions test/engine1.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ if (process.platform == 'darwin' || process.platform == 'linux') {
}
}

var test = require('./tests.js')(JZZ, undefined, 'node', MT);
var test = require('./tests.js')(JZZ, undefined, MT);

describe('Engine: node', function() {
test.engine_name();
test.engine_name('node', true);
test.native_midi_out();
test.non_existent_midi_in();
test.non_existent_midi_out();
Expand Down
7 changes: 5 additions & 2 deletions test/engine2.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//// testing the 'extension' engine

var JZZ = require('..');
var WMT = require('web-midi-test');

var DOM = {
inArr: [],
Expand Down Expand Up @@ -105,11 +106,13 @@ global.document = DOM;
global.window = DOM;
global.Event = DOM.Event;
global.CustomEvent = DOM.CustomEvent;
WMT.midi = false;
global.navigator = WMT;

var test = require('./tests.js')(JZZ, { engine: ['webmidi', 'extension'] }, 'extension', DOM);
var test = require('./tests.js')(JZZ, { engine: ['webmidi', 'extension'] }, DOM);

describe('Engine: extension', function() {
test.engine_name();
test.engine_name('extension', true);
test.non_existent_midi_in();
test.non_existent_midi_out();
test.widget_midi_in();
Expand Down
19 changes: 19 additions & 0 deletions test/engine3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//// testing the 'webmidi' engine

var JZZ = require('..');
var WMT = require('web-midi-test');

WMT.sysex = false;
global.navigator = WMT;

var test = require('./tests.js')(JZZ, { engine: 'webmidi', sysex: true, degrade: true }, WMT);

describe('Engine: webmidi', function() {
test.engine_name('webmidi', false);
test.non_existent_midi_in();
test.non_existent_midi_out();
test.widget_midi_in();
test.widget_midi_out();
// test.virtual_midi_in();
// test.virtual_midi_out();
});
9 changes: 5 additions & 4 deletions test/tests.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
var assert = require('assert');
module.exports = function(JZZ, PARAMS, ENGINE, DRIVER) {
module.exports = function(JZZ, PARAMS, DRIVER) {
var engine = JZZ(PARAMS);
return {

engine_name: function() {
it('engine: ' + ENGINE, function(done) {
engine_name: function(name, sysex) {
it('engine: ' + name, function(done) {
engine.wait(0).wait(1).and(function() { // console.log(this.info());
assert.equal(this.info().engine, ENGINE);
assert.equal(this.info().engine, name);
assert.equal(this.info().sysex, sysex);
done();
});
});
Expand Down

0 comments on commit 3dff55c

Please sign in to comment.