Add comprehensive test coverage for Ableton automation, fader policies, and pad sound export logic
This commit is contained in:
35
tests/ableton-fader-policies.test.ts
Normal file
35
tests/ableton-fader-policies.test.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import {
|
||||
FADER_POLICIES,
|
||||
convertGroupFaderValue,
|
||||
getFaderPolicy,
|
||||
} from '../src/lib/exporters/ableton/faderPolicies';
|
||||
import { AblTrack } from '../src/lib/transformers/ableton';
|
||||
import { FaderParam } from '../src/types/types';
|
||||
|
||||
const track = { volume: 0.4 } as AblTrack;
|
||||
|
||||
test('defines an explicit policy for every EP group fader parameter', () => {
|
||||
assert.equal(Object.keys(FADER_POLICIES).length, 12);
|
||||
for (let parameter = FaderParam.LVL; parameter <= FaderParam.MOD; parameter++) {
|
||||
assert.ok(getFaderPolicy(parameter));
|
||||
}
|
||||
});
|
||||
|
||||
test('separates Live targets, note transforms and unsupported group parameters', () => {
|
||||
assert.equal(getFaderPolicy(FaderParam.PAN).renderStrategy, 'target');
|
||||
assert.equal(getFaderPolicy(FaderParam.VEL).renderStrategy, 'note');
|
||||
assert.equal(getFaderPolicy(FaderParam.TIM).renderStrategy, 'unsupported');
|
||||
assert.equal(getFaderPolicy(FaderParam.ATK).renderStrategy, 'unsupported');
|
||||
assert.equal(getFaderPolicy(FaderParam.REL).renderStrategy, 'unsupported');
|
||||
});
|
||||
|
||||
test('uses one group-fader conversion path for mixer and pad targets', () => {
|
||||
assert.equal(convertGroupFaderValue(FaderParam.LVL, 0.5, { track }), 0.2);
|
||||
assert.equal(convertGroupFaderValue(FaderParam.PAN, 0.75, { track }), 0.5);
|
||||
assert.equal(
|
||||
convertGroupFaderValue(FaderParam.PTC, 0.75, { track, valueOffset: 7 }),
|
||||
9.5,
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user