mirror of
https://github.com/HSLdevcom/digitransit-ui
synced 2025-07-05 16:30:37 +02:00
92 lines
2.3 KiB
JavaScript
92 lines
2.3 KiB
JavaScript
import { expect } from 'chai';
|
|
import { describe, it } from 'mocha';
|
|
|
|
import * as utils from '../../app/util/browser';
|
|
|
|
const noop = () => {};
|
|
|
|
describe('browser', () => {
|
|
describe('isKeyboardSelectionEvent', () => {
|
|
it('should return true for space " "', () => {
|
|
const event = {
|
|
key: ' ',
|
|
preventDefault: noop,
|
|
};
|
|
|
|
const result = utils.isKeyboardSelectionEvent(event);
|
|
expect(result).to.equal(true);
|
|
});
|
|
|
|
it('should return true for space "Spacebar"', () => {
|
|
const event = {
|
|
key: 'Spacebar',
|
|
preventDefault: noop,
|
|
};
|
|
|
|
const result = utils.isKeyboardSelectionEvent(event);
|
|
expect(result).to.equal(true);
|
|
});
|
|
|
|
it('should return true for enter', () => {
|
|
const event = {
|
|
key: 'Enter',
|
|
preventDefault: noop,
|
|
};
|
|
|
|
const result = utils.isKeyboardSelectionEvent(event);
|
|
expect(result).to.equal(true);
|
|
});
|
|
|
|
it('should return false for invalid events', () => {
|
|
expect(utils.isKeyboardSelectionEvent(undefined)).to.equal(false);
|
|
expect(utils.isKeyboardSelectionEvent(null)).to.equal(false);
|
|
expect(utils.isKeyboardSelectionEvent(true)).to.equal(false);
|
|
});
|
|
|
|
it('should call preventDefault for a matching event', () => {
|
|
let wasCalled = false;
|
|
const event = {
|
|
key: 'Enter',
|
|
preventDefault: () => {
|
|
wasCalled = true;
|
|
},
|
|
};
|
|
|
|
utils.isKeyboardSelectionEvent(event);
|
|
expect(wasCalled).to.equal(true);
|
|
});
|
|
|
|
it('should not call preventDefault for a non-matching event', () => {
|
|
let wasCalled = false;
|
|
const event = {
|
|
key: 'Tab',
|
|
preventDefault: () => {
|
|
wasCalled = true;
|
|
},
|
|
};
|
|
|
|
utils.isKeyboardSelectionEvent(event);
|
|
expect(wasCalled).to.equal(false);
|
|
});
|
|
|
|
it('should read .which if .key is not available', () => {
|
|
const event = {
|
|
preventDefault: noop,
|
|
which: 32, // enter
|
|
};
|
|
|
|
const result = utils.isKeyboardSelectionEvent(event);
|
|
expect(result).to.equal(true);
|
|
});
|
|
|
|
it('should read .keyCode if .which and .key are not available', () => {
|
|
const event = {
|
|
keyCode: 32, // enter
|
|
preventDefault: () => {},
|
|
};
|
|
|
|
const result = utils.isKeyboardSelectionEvent(event);
|
|
expect(result).to.equal(true);
|
|
});
|
|
});
|
|
});
|