mirror of
https://github.com/Tonejs/Tone.js
synced 2024-12-28 12:33:12 +00:00
36 lines
1 KiB
TypeScript
36 lines
1 KiB
TypeScript
|
import { expect } from "chai";
|
||
|
import { Offline } from "test/helper/Offline";
|
||
|
import { Monophonic } from "Tone/instrument/Monophonic";
|
||
|
|
||
|
// tslint:disable-next-line
|
||
|
export function MonophonicTest(Constr, note, constrArg?): void {
|
||
|
|
||
|
context("Monophonic Tests", () => {
|
||
|
|
||
|
it ("has an onsilence callback which is invoked after the release has finished", () => {
|
||
|
let wasInvoked = false;
|
||
|
return Offline(() => {
|
||
|
const instance = new Constr(constrArg);
|
||
|
instance.toDestination();
|
||
|
instance.triggerAttackRelease(note, 0.1, 0);
|
||
|
instance.onsilence = () => wasInvoked = true;
|
||
|
}, 2).then(() => {
|
||
|
expect(wasInvoked).to.equal(true);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it ("invokes onsilence callback when the sustain is set to 0", () => {
|
||
|
let wasInvoked = false;
|
||
|
return Offline(() => {
|
||
|
const instance = new Constr(constrArg);
|
||
|
instance.toDestination();
|
||
|
instance.envelope.sustain = 0;
|
||
|
instance.triggerAttack(note, 0);
|
||
|
instance.onsilence = () => wasInvoked = true;
|
||
|
}, 2).then(() => {
|
||
|
expect(wasInvoked).to.equal(true);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
}
|