feat: couple terrain surge and sun bloom to the soundtrack's low end
This commit is contained in:
28
tests/unit/music-pulse.test.ts
Normal file
28
tests/unit/music-pulse.test.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { afterEach, describe, expect, it } from 'vitest';
|
||||
import { attachMusicPulse, readMusicPulse, setMusicPulseAudible } from '@/audio/music-pulse';
|
||||
|
||||
const fakeAnalyser = (level: number) => ({
|
||||
frequencyBinCount: 8,
|
||||
getByteFrequencyData(target: Uint8Array) { target.fill(level); },
|
||||
}) as unknown as AnalyserNode;
|
||||
|
||||
afterEach(() => {
|
||||
attachMusicPulse(null);
|
||||
setMusicPulseAudible(false);
|
||||
});
|
||||
|
||||
describe('music pulse', () => {
|
||||
it('reads zero without an analyser', () => {
|
||||
setMusicPulseAudible(true);
|
||||
expect(readMusicPulse()).toBe(0);
|
||||
});
|
||||
it('reads zero while the soundtrack is not audible', () => {
|
||||
attachMusicPulse(fakeAnalyser(255));
|
||||
expect(readMusicPulse()).toBe(0);
|
||||
});
|
||||
it('normalizes the low-band level when audible', () => {
|
||||
attachMusicPulse(fakeAnalyser(51));
|
||||
setMusicPulseAudible(true);
|
||||
expect(readMusicPulse()).toBeCloseTo(0.2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user