1.0.0-rc.1 • Published 5 years ago
@objectkit/scriptex-mox v1.0.0-rc.1
@objectkit/scriptex-mox
A mocking library for testing Scriptex MIDI plugins.
Purpose
A bare bones set of interfaces and actors to mock the Scripter MIDI-FX Plugin environment.
Interfaces
- Scripter
- TimingInfo
- MIDI
- Event
- ChannelPressure
- ControlChange
- Note
- NoteOn
- NoteOff
- PitchBend
- PolyPressure
- ProgramChange
- TargetEvent
Actors
- ReScripter
Example
/* @see ./src/test/js/com/objectkit/scriptex/mox/system/SimpleReScripterITSpec.js */
import sinon from "sinon"
import chai from "chai"
import { ReScripter } from "@objectkit/scriptex-mox"
const { assert } = chai
describe(`Simple ReScripter Integration Test`, () => {
context(`Given a new ReScripter instance`, () => {
describe(`When #PluginParameters and #ParameterChanged are defined`, () => {
/* create and decorate a new instance */
const Scripter= new ReScripter()
Scripter.PluginParameters= [ {
name: "button", type: "momentary"
}
]
Scripter.ParameterChanged= (key, val) => {
Scripter.Trace(
`name: ${Scripter.PluginParameters[key].name}, data: ${val}`
)
}
beforeEach(() => {
sinon.spy(Scripter, `Trace`)
})
afterEach(() => {
sinon.restore()
})
specify(`Then #SetParameter invokes #ParameterChanged`, () => {
{
Scripter.SetParameter(0, 1)
}
assert.strictEqual(Scripter.Trace.lastCall.firstArg, `name: button, data: 1`)
{
Scripter.SetParameter(0, 2)
}
assert.strictEqual(Scripter.Trace.lastCall.firstArg, `name: button, data: 2`)
{
Scripter.SetParameter(0, 3)
}
assert.strictEqual(Scripter.Trace.lastCall.firstArg, `name: button, data: 3`)
})
})
})
})
1.0.0-rc.2
5 years ago
1.0.0-rc.1
5 years ago