Update sparse pads test to use server module loading for transformers and webView

This commit is contained in:
2026-07-14 11:54:45 +02:00
parent 3f4260fab7
commit 94fbe994dd

View File

@@ -1,19 +1,10 @@
import assert from 'node:assert/strict'; import assert from 'node:assert/strict';
import test from 'node:test'; import test from 'node:test';
import { createServer } from 'vite';
import { collectPads } from '../src/lib/parsers'; import { collectPads } from '../src/lib/parsers';
import abletonTransformer from '../src/lib/transformers/ableton';
import dawProjectTransformer from '../src/lib/transformers/dawProject';
import midiTransformer from '../src/lib/transformers/midi';
import reaperTransformer from '../src/lib/transformers/reaper';
import { TarFile } from '../src/lib/untar'; import { TarFile } from '../src/lib/untar';
import {
EffectType,
FaderParam,
Group,
GroupFaderParam,
ProjectRawData,
} from '../src/types/types';
import { findPad } from '../src/lib/utils'; import { findPad } from '../src/lib/utils';
import { EffectType, FaderParam, Group, GroupFaderParam, ProjectRawData } from '../src/types/types';
function faderParams(): GroupFaderParam { function faderParams(): GroupFaderParam {
return Object.fromEntries( return Object.fromEntries(
@@ -72,7 +63,7 @@ function sparseProject(): ProjectRawData {
}; };
} }
test('keeps physical p02 on zero-based pattern source 1 when p01 is omitted', () => { test('keeps physical p02 on zero-based pattern source 1 when p01 is omitted', async () => {
const data = sparseProject(); const data = sparseProject();
const physicalPad = data.pads.a[0]; const physicalPad = data.pads.a[0];
@@ -81,20 +72,44 @@ test('keeps physical p02 on zero-based pattern source 1 when p01 is omitted', ()
assert.equal(findPad('a1', data.pads), physicalPad); assert.equal(findPad('a1', data.pads), physicalPad);
const params = { exportAllPadsWithSamples: true, keepUnusedPatterns: false }; const params = { exportAllPadsWithSamples: true, keepUnusedPatterns: false };
const server = await createServer({
server: { middlewareMode: true },
appType: 'custom',
mode: 'production',
define: { 'import.meta.env.DEV': 'false' },
});
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( assert.deepEqual(
abletonTransformer(data, params).tracks.map((track) => track.padCode), abletonModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
['a1'], ['a1'],
); );
assert.deepEqual( assert.deepEqual(
midiTransformer(data, params).tracks.map((track) => track.padCode), midiModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
['a1'], ['a1'],
); );
assert.deepEqual( assert.deepEqual(
reaperTransformer(data, params).tracks.map((track) => track.padCode), reaperModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
['a1'], ['a1'],
); );
assert.deepEqual( assert.deepEqual(
dawProjectTransformer(data, params).tracks.map((track) => track.padCode), dawProjectModule.default(data, params).tracks.map((track: { padCode: string }) => track.padCode),
['a1'], ['a1'],
); );
assert.deepEqual(
webViewModule.default(data).scenes[0].patterns.map((pattern: { pad: string }) => pattern.pad),
['a1'],
);
} finally {
await server.close();
}
}); });