From 2890609053d9480133a21728a369f7ffbbe2847c Mon Sep 17 00:00:00 2001 From: Eric Rosenbaum <eric.rosenbaum@gmail.com> Date: Tue, 30 Jul 2019 11:38:52 -0400 Subject: [PATCH] Add unit test for audio effect adjustedTrim times --- test/unit/util/audio-effects.test.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/unit/util/audio-effects.test.js b/test/unit/util/audio-effects.test.js index ba6ea6b8f..330fe12a1 100644 --- a/test/unit/util/audio-effects.test.js +++ b/test/unit/util/audio-effects.test.js @@ -28,6 +28,22 @@ describe('Audio Effects manager', () => { expect(audioEffects.audioContext._.length).toBeGreaterThan(400); }); + test('updates the trim positions after an effect has changed the length of selection', () => { + const slowerEffect = new AudioEffects(audioBuffer, 'slower', 0.25, 0.75); + expect(slowerEffect.adjustedTrimStartSeconds).toEqual(slowerEffect.trimStartSeconds); + expect(slowerEffect.adjustedTrimEndSeconds).toBeGreaterThan(slowerEffect.trimEndSeconds); + + const fasterEffect = new AudioEffects(audioBuffer, 'faster', 0.25, 0.75); + expect(fasterEffect.adjustedTrimStartSeconds).toEqual(fasterEffect.trimStartSeconds); + expect(fasterEffect.adjustedTrimEndSeconds).toBeLessThan(fasterEffect.trimEndSeconds); + + // Some effects do not change the length of the selection + const fadeEffect = new AudioEffects(audioBuffer, 'fade in', 0.25, 0.75); + expect(fadeEffect.adjustedTrimStartSeconds).toEqual(fadeEffect.trimStartSeconds); + // Should be within one millisecond (flooring can change the duration by one sample) + expect(fadeEffect.adjustedTrimEndSeconds).toBeCloseTo(fadeEffect.trimEndSeconds, 3); + }); + test.skip('process starts the offline rendering context and returns a promise', () => { // @todo haven't been able to get web audio test api to actually run render }); -- GitLab