Update test suite to include pattern 'c' in project data and scene arrangements

This commit is contained in:
2026-07-14 10:21:22 +02:00
parent 73935b1b46
commit 262a1c74ec

View File

@@ -102,13 +102,15 @@ function project(): ProjectRawData {
pads: { pads: {
a: [pad('a', 0), pad('a', 1)], a: [pad('a', 0), pad('a', 1)],
b: [pad('b', 0)], b: [pad('b', 0)],
c: [], c: [pad('c', 0)],
d: [], d: [],
}, },
groupPatterns: [ groupPatterns: [
pattern('a', 1, 2, 0, 60), pattern('a', 1, 2, 0, 60),
pattern('b', 2, 1, 0, 36), pattern('b', 2, 1, 0, 36),
pattern('a', 3, 1, 1, 64), pattern('a', 3, 1, 1, 64),
pattern('c', 3, 1, 0, 67),
pattern('b', 1, 1, 0, 38),
], ],
scenes: [ scenes: [
scene(1, { a: 1, b: 2, c: 0, d: 0 }, 3, 4), scene(1, { a: 1, b: 2, c: 0, d: 0 }, 3, 4),
@@ -156,7 +158,9 @@ test('combines genuine Session scenes, orphan patterns and the repeated Song Arr
[ [
['01', 'scene', ['a', 'b', 'c', 'd']], ['01', 'scene', ['a', 'b', 'c', 'd']],
['02', 'scene', ['a', 'b', 'c', 'd']], ['02', 'scene', ['a', 'b', 'c', 'd']],
['B PATTERN 01', 'pattern', ['b']],
['A PATTERN 03', 'pattern', ['a']], ['A PATTERN 03', 'pattern', ['a']],
['C PATTERN 03', 'pattern', ['c']],
], ],
); );
assert.deepEqual( assert.deepEqual(
@@ -176,6 +180,7 @@ test('combines genuine Session scenes, orphan patterns and the repeated Song Arr
const a0 = result.tracks.find((track) => track.padCode === 'a0'); const a0 = result.tracks.find((track) => track.padCode === 'a0');
const a1 = result.tracks.find((track) => track.padCode === 'a1'); const a1 = result.tracks.find((track) => track.padCode === 'a1');
const b0 = result.tracks.find((track) => track.padCode === 'b0'); const b0 = result.tracks.find((track) => track.padCode === 'b0');
const c0 = result.tracks.find((track) => track.padCode === 'c0');
assert.deepEqual( assert.deepEqual(
a0?.lane?.sessionClips.map((clip) => clip.sceneIndex), a0?.lane?.sessionClips.map((clip) => clip.sceneIndex),
@@ -191,17 +196,22 @@ test('combines genuine Session scenes, orphan patterns and the repeated Song Arr
); );
assert.deepEqual( assert.deepEqual(
a1?.lane?.sessionClips.map((clip) => clip.sceneIndex), a1?.lane?.sessionClips.map((clip) => clip.sceneIndex),
[2], [3],
); );
assert.deepEqual(a1?.lane?.arrangementClips, []); assert.deepEqual(a1?.lane?.arrangementClips, []);
assert.deepEqual( assert.deepEqual(
b0?.lane?.sessionClips.map((clip) => clip.sceneIndex), b0?.lane?.sessionClips.map((clip) => clip.sceneIndex),
[0], [0, 2],
); );
assert.deepEqual( assert.deepEqual(
b0?.lane?.arrangementClips.map((clip) => [clip.occurrenceIndex, clip.offset]), b0?.lane?.arrangementClips.map((clip) => [clip.occurrenceIndex, clip.offset]),
[[1, 4]], [[1, 4]],
); );
assert.deepEqual(
c0?.lane?.sessionClips.map((clip) => clip.sceneIndex),
[4],
);
assert.deepEqual(c0?.lane?.arrangementClips, []);
}); });
test('keeps Session material and leaves Arrangement empty when no Song is present', () => { test('keeps Session material and leaves Arrangement empty when no Song is present', () => {