Update sparse pads test to use server module loading for transformers and webView
This commit is contained in:
@@ -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();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user