import Test from "helper/Test"; import Tone from "Tone/core/Tone"; import Delay from "Tone/core/Delay"; import PassAudio from "helper/PassAudio"; describe("Delay", function(){ it("can be created and disposed", function(){ var delay = new Delay(); delay.dispose(); Test.wasDisposed(delay); }); it("handles input and output connections", function(){ var delay = new Delay(); delay.connect(Test); Test.connect(delay); Test.connect(delay.delayTime); delay.dispose(); }); it("can set delay time", function(){ var delay = new Delay(); delay.delayTime.value = 0.2; expect(delay.delayTime.value).to.be.closeTo(0.2, 0.001); delay.dispose(); }); it("can be constructed with an options object", function(){ var delay = new Delay({ "delayTime" : 0.3, "maxDelay" : 2 }); expect(delay.delayTime.value).to.be.closeTo(0.3, 0.001); expect(delay.maxDelay).to.equal(2); delay.dispose(); }); it("if the constructor delay time is greater than maxDelay, use that as the maxDelay time", function(){ var delay = new Delay(3); expect(delay.delayTime.value).to.be.closeTo(3, 0.001); delay.dispose(); }); it("can returns state from 'get' method", function(){ var delay = new Delay({ "delayTime" : 0.4, "maxDelay" : 2 }); var values = delay.get(); expect(values.delayTime).to.be.closeTo(0.4, 0.001); delay.dispose(); }); it("accepts Time in constructor", function(){ var delay = new Delay("4n"); expect(delay.delayTime.value).to.be.closeTo(delay.toSeconds("4n"), 0.001); delay.dispose(); }); it("accepts Time in options object", function(){ var delay = new Delay({ "delayTime" : "8t" }); expect(delay.delayTime.value).to.be.closeTo(delay.toSeconds("8t"), 0.001); delay.dispose(); }); it("can set Time", function(){ var delay = new Delay(); delay.delayTime.value = "16n"; expect(delay.delayTime.value).to.be.closeTo(delay.toSeconds("16n"), 0.001); delay.dispose(); }); it("passes audio through", function(){ return PassAudio(function(input){ var delay = new Delay(0).toMaster(); input.connect(delay); }); }); });