scratch-vm/test/unit/io_keyboard.js
Ray Schamp bafdf8d9f2 Use ES6 linting rules in the project root
Update all tests for `no-var` and `prefer-arrow-callback` (using `--fix`)
2017-04-24 15:37:58 -04:00

73 lines
1.6 KiB
JavaScript

const test = require('tap').test;
const Keyboard = require('../../src/io/keyboard');
const Runtime = require('../../src/engine/runtime');
test('spec', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
t.type(k, 'object');
t.type(k.postData, 'function');
t.type(k.getKeyIsDown, 'function');
t.end();
});
test('space', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 32,
isDown: true
});
t.strictDeepEquals(k._keysPressed, [32]);
t.strictEquals(k.getKeyIsDown('space'), true);
t.strictEquals(k.getKeyIsDown('any'), true);
t.end();
});
test('letter', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 65,
isDown: true
});
t.strictDeepEquals(k._keysPressed, [65]);
t.strictEquals(k.getKeyIsDown('a'), true);
t.strictEquals(k.getKeyIsDown('any'), true);
t.end();
});
test('number', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 49,
isDown: true
});
t.strictDeepEquals(k._keysPressed, [49]);
t.strictEquals(k.getKeyIsDown(49), true);
t.strictEquals(k.getKeyIsDown('any'), true);
t.end();
});
test('keyup', t => {
const rt = new Runtime();
const k = new Keyboard(rt);
k.postData({
keyCode: 37,
isDown: true
});
k.postData({
keyCode: 37,
isDown: false
});
t.strictDeepEquals(k._keysPressed, []);
t.strictEquals(k.getKeyIsDown(37), false);
t.strictEquals(k.getKeyIsDown('any'), false);
t.end();
});