slop game oder so
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import { oncePerEvent } from '../../app/static/js/systems/keyboard.js';
|
||||
|
||||
describe('oncePerEvent', () => {
|
||||
it('lässt dasselbe Ereignisobjekt nur einmal durch', () => {
|
||||
const handler = vi.fn();
|
||||
const wrapped = oncePerEvent(handler);
|
||||
const first = { code: 'ArrowDown' };
|
||||
const second = { code: 'ArrowDown' };
|
||||
// Phaser meldet bei mehreren Ereignissen pro Frame frühere Ereignisse erneut.
|
||||
wrapped(first);
|
||||
wrapped(first);
|
||||
wrapped(second);
|
||||
wrapped(first);
|
||||
wrapped(second);
|
||||
expect(handler).toHaveBeenCalledTimes(2);
|
||||
expect(handler.mock.calls.map(([event]) => event)).toEqual([first, second]);
|
||||
});
|
||||
|
||||
it('funktioniert auch ohne Ereignisobjekt (z. B. Zeiger-Aufrufe)', () => {
|
||||
const handler = vi.fn();
|
||||
const wrapped = oncePerEvent(handler);
|
||||
wrapped(undefined);
|
||||
wrapped(undefined);
|
||||
expect(handler).toHaveBeenCalledTimes(2);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user