mirror of
https://github.com/Tonejs/Tone.js
synced 2024-12-27 20:13:07 +00:00
aaf880c925
* WIP moving tests to web-test-runner * updating thresholds * Adding file extensions * Testing integrations * linting * fixing dep * moving back to root dir * prettier all of the files * updating eslint rules to use with prettier * remove import package * moving tsignore around * removing unneeded ignores * all tests run on puppeteer, no need for testing guards * linting * import type syntax * cleaning up * Update package.json
43 lines
1 KiB
TypeScript
43 lines
1 KiB
TypeScript
import { expect } from "chai";
|
|
import { Offline } from "./Offline.js";
|
|
import { ToneAudioNode } from "../../Tone/core/context/ToneAudioNode.js";
|
|
import { Signal } from "../../Tone/signal/Signal.js";
|
|
|
|
/**
|
|
* Make sure that the audio passes from input node
|
|
* to the destination node
|
|
*/
|
|
export function PassAudio(
|
|
callback: (input: ToneAudioNode) => void,
|
|
passes = true
|
|
): Promise<void> {
|
|
const duration = 0.2;
|
|
return Offline(
|
|
() => {
|
|
const sig = new Signal(0);
|
|
callback(sig);
|
|
sig.setValueAtTime(1, duration / 2);
|
|
},
|
|
0.2,
|
|
1
|
|
).then((buffer) => {
|
|
expect(buffer.getValueAtTime(0)).to.be.closeTo(0, 0.001);
|
|
expect(buffer.getValueAtTime(duration / 2 - 0.01)).to.be.closeTo(
|
|
0,
|
|
0.001
|
|
);
|
|
if (passes) {
|
|
expect(buffer.getValueAtTime(duration / 2 + 0.01)).to.not.equal(0);
|
|
expect(buffer.getValueAtTime(duration - 0.01)).to.not.equal(0);
|
|
} else {
|
|
expect(buffer.getValueAtTime(duration / 2 + 0.01)).to.be.closeTo(
|
|
0,
|
|
0.001
|
|
);
|
|
expect(buffer.getValueAtTime(duration - 0.01)).to.be.closeTo(
|
|
0,
|
|
0.001
|
|
);
|
|
}
|
|
});
|
|
}
|