Refactor pad code generation using padToPadCode utility function across transformers and update test setup
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { createServer } from 'vite';
|
||||
import { collectPads } from '../src/lib/parsers';
|
||||
import abletonTransformer from '../src/lib/transformers/ableton';
|
||||
import midiTransformer from '../src/lib/transformers/midi';
|
||||
import { TarFile } from '../src/lib/untar';
|
||||
import { findPad } from '../src/lib/utils';
|
||||
import { findPad, padToPadCode } from '../src/lib/utils';
|
||||
import { EffectType, FaderParam, Group, GroupFaderParam, ProjectRawData } from '../src/types/types';
|
||||
|
||||
function faderParams(): GroupFaderParam {
|
||||
@@ -70,49 +71,15 @@ test('keeps physical p02 on zero-based pattern source 1 when p01 is omitted', as
|
||||
assert.equal(physicalPad.pad, 2);
|
||||
assert.equal(findPad('a0', data.pads), undefined);
|
||||
assert.equal(findPad('a1', data.pads), physicalPad);
|
||||
assert.equal(padToPadCode(physicalPad), 'a1');
|
||||
|
||||
const params = { exportAllPadsWithSamples: true, keepUnusedPatterns: false };
|
||||
const server = await createServer({
|
||||
server: { middlewareMode: true },
|
||||
appType: 'custom',
|
||||
mode: 'production',
|
||||
define: { 'import.meta.env.DEV': 'false' },
|
||||
ssr: { noExternal: ['lodash'] },
|
||||
});
|
||||
|
||||
try {
|
||||
const [abletonModule, midiModule, reaperModule, dawProjectModule, webViewModule] =
|
||||
await Promise.all([
|
||||
server.ssrLoadModule('/src/lib/transformers/ableton.ts'),
|
||||
server.ssrLoadModule('/src/lib/transformers/midi.ts'),
|
||||
server.ssrLoadModule('/src/lib/transformers/reaper.ts'),
|
||||
server.ssrLoadModule('/src/lib/transformers/dawProject.ts'),
|
||||
server.ssrLoadModule('/src/lib/transformers/webView.ts'),
|
||||
]);
|
||||
|
||||
assert.deepEqual(
|
||||
abletonModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
|
||||
['a1'],
|
||||
);
|
||||
assert.deepEqual(
|
||||
midiModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
|
||||
['a1'],
|
||||
);
|
||||
assert.deepEqual(
|
||||
reaperModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
|
||||
['a1'],
|
||||
);
|
||||
assert.deepEqual(
|
||||
dawProjectModule
|
||||
.default(data, params)
|
||||
.tracks.map((track: { padCode: string }) => track.padCode),
|
||||
['a1'],
|
||||
);
|
||||
assert.deepEqual(
|
||||
webViewModule.default(data).scenes[0].patterns.map((pattern: { pad: string }) => pattern.pad),
|
||||
['a1'],
|
||||
);
|
||||
} finally {
|
||||
await server.close();
|
||||
}
|
||||
assert.deepEqual(
|
||||
abletonTransformer(data, params).tracks.map((track) => track.padCode),
|
||||
['a1'],
|
||||
);
|
||||
assert.deepEqual(
|
||||
midiTransformer(data, params).tracks.map((track) => track.padCode),
|
||||
['a1'],
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user