Skip to content

Commit 725e724

Browse files
test(core): regression test for mjolnir requireFailure wiring
Construct a Deck and verify pinch, pan, and click each have the expected blocking recognizer in their requireFail array. Catches the `requestFailure` typo class of bug without depending on TypeScript flagging it through mjolnir's union type.
1 parent 7501827 commit 725e724

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

test/modules/core/lib/deck.spec.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,47 @@ test('Deck#constructor', async () => {
116116
console.log('Deck constructor did not throw');
117117
});
118118

119+
test('Deck wires mjolnir requireFailure between recognizers', async () => {
120+
// Regression guard: deck.gl previously emitted `requestFailure` instead of
121+
// `requireFailure`, which mjolnir silently dropped — so pinch/pan/click no
122+
// longer waited for their blocking recognizer to fail.
123+
await new Promise<void>((resolve, reject) => {
124+
const deck = new Deck({
125+
device,
126+
width: 1,
127+
height: 1,
128+
viewState: {longitude: 0, latitude: 0, zoom: 0},
129+
layers: [],
130+
controller: true,
131+
onLoad: () => {
132+
try {
133+
const recognizers =
134+
(deck as any).eventManager?.manager?.recognizers ?? [];
135+
const requiredFailures = (event: string): string[] =>
136+
(recognizers.find(r => r.options.event === event)?.requireFail ?? []).map(
137+
(r: any) => r.options.event
138+
);
139+
140+
expect(requiredFailures('pinch'), 'pinch waits for multipan').toContain(
141+
'multipan'
142+
);
143+
expect(requiredFailures('pan'), 'pan waits for multipan').toContain(
144+
'multipan'
145+
);
146+
expect(requiredFailures('click'), 'click waits for dblclick').toContain(
147+
'dblclick'
148+
);
149+
150+
deck.finalize();
151+
resolve();
152+
} catch (error) {
153+
reject(error);
154+
}
155+
}
156+
});
157+
});
158+
});
159+
119160
test('Deck#abort', async () => {
120161
const deck = new Deck({
121162
device,

0 commit comments

Comments
 (0)