From 5f909bf4fb43ba4d9b628bb830d6f1f260bf906a Mon Sep 17 00:00:00 2001 From: Sema Date: Sat, 18 Nov 2023 00:09:39 -0500 Subject: [PATCH] Coverage and fixes --- index.js | 2 +- package.json | 3 ++- test/mocha.js | 44 ++++++++++++++++++++++++++++++++------------ 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/index.js b/index.js index 384b1b1..c869f42 100644 --- a/index.js +++ b/index.js @@ -74,7 +74,7 @@ function chop(s, n) { function populate(x, m) { var i, j, k, h; if (m instanceof JZZ.MIDI.Clip) { - h = { type: 'clip', ppqn: m.length }; + h = { type: 'clip', ppqn: m.ppqn }; x.header = h; } else { diff --git a/package.json b/package.json index 36d7451..46f04a0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "runkit-midi", - "version": "1.1.0", + "version": "1.1.1", "description": "MIDI player/viewer for RunKit", "main": "index.js", "scripts": { @@ -24,6 +24,7 @@ "jzz-synth-tiny": "^1.3.7" }, "devDependencies": { + "@runkit/value-viewer": "^1.0.0", "eslint": "^8.53.0", "mocha": "^10.2.0", "nyc": "^15.1.0" diff --git a/test/mocha.js b/test/mocha.js index e820b73..f628fd3 100644 --- a/test/mocha.js +++ b/test/mocha.js @@ -1,19 +1,39 @@ const assert = require('assert'); +const { ValueViewerSymbol } = require("@runkit/value-viewer"); const rkmidi = require('..'); const JZZ = require('jzz'); require('jzz-midi-smf')(JZZ); -describe('smoke test', function() { - it('it works!', function() { - var smf = new JZZ.MIDI.SMF(0, 96); - var trk = new JZZ.MIDI.SMF.MTrk(); - smf.push(trk); - trk.smfBPM(90).ch(0).program(16) - .tick(96).noteOn('C6', 127).tick(96).noteOn('Eb6', 127) - .tick(96).noteOn('G6', 127).tick(96).noteOn('C7', 127) - .tick(192).noteOff('C6').noteOff('Eb6').noteOff('G6') - .noteOff('C7').tick(96).smfEndOfTrack(); - var data = rkmidi(smf); - assert.equal(data.ValueViewerSymbol.title, 'MIDI Player'); +var clip = new JZZ.MIDI.Clip(); +var smf1 = new JZZ.MIDI.SMF(0, 96); +var smf2 = new JZZ.MIDI.SMF(1, 24, 16); +var trk1 = new JZZ.MIDI.SMF.MTrk(); +var trk2 = new JZZ.MIDI.SMF.Chunk('JUNK', 'JUNK'); +smf1.push(trk1); +smf2.push(trk1); +smf2.push(trk2); +trk1.noteOn(0, 'C6', 127).tick(96).noteOff(0, 'C6'); +clip.noteOn(0, 0, 'C6', 127).tick(96).noteOff(0, 0, 'C6'); + +describe('MIDI files', function() { + it('empty', function() { + var data = rkmidi(); + assert.equal(data[ValueViewerSymbol].title, 'MIDI Player'); + }); + it('smf1', function() { + var data = rkmidi(smf1); + assert.equal(data[ValueViewerSymbol].title, 'MIDI Player'); + }); + it('smf2', function() { + var data = rkmidi(smf2); + assert.equal(data[ValueViewerSymbol].title, 'MIDI Player'); + }); + it('clip', function() { + var data = rkmidi(clip); + assert.equal(data[ValueViewerSymbol].title, 'MIDI Player'); + }); + it('error', function() { + var data = rkmidi('error'); + assert.equal(data[ValueViewerSymbol].title, 'MIDI Player'); }); });