import { expect } from 'chai' import Key from '../../../src/shared/settings/Key'; describe("Key", () => { describe('fromMapKey', () => { it('return for X', () => { const key = Key.fromMapKey('x'); expect(key.key).to.equal('x'); expect(key.shift).to.be.false; expect(key.ctrl).to.be.false; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it('return for Shift+X', () => { const key = Key.fromMapKey('X'); expect(key.key).to.equal('X'); expect(key.shift).to.be.true; expect(key.ctrl).to.be.false; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it('return for Ctrl+X', () => { const key = Key.fromMapKey(''); expect(key.key).to.equal('x'); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it('returns for Ctrl+Meta+X', () => { const key = Key.fromMapKey(''); expect(key.key).to.equal('x'); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.true; }); it('returns for Ctrl+Shift+x', () => { const key = Key.fromMapKey(''); expect(key.key).to.equal('X'); expect(key.shift).to.be.true; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it('returns for Shift+Esc', () => { const key = Key.fromMapKey(''); expect(key.key).to.equal('Esc'); expect(key.shift).to.be.true; expect(key.ctrl).to.be.false; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it('returns for Ctrl+Esc', () => { const key = Key.fromMapKey(''); expect(key.key).to.equal('Esc'); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); it('returns for Ctrl+Esc', () => { const key = Key.fromMapKey(''); expect(key.key).to.equal('Space'); expect(key.shift).to.be.false; expect(key.ctrl).to.be.true; expect(key.alt).to.be.false; expect(key.meta).to.be.false; }); }); describe('idDigit', () => { it('returns true if the key is a digit', () => { expect(new Key({ key: '0' }).isDigit()).to.be.true; expect(new Key({ key: '9' }).isDigit()).to.be.true; expect(new Key({ key: '9', alt: true }).isDigit()).to.be.false; expect(new Key({ key: 'a' }).isDigit()).to.be.false; expect(new Key({ key: '0' }).isDigit()).to.be.false; }) }); describe('equals', () => { it('returns true if the keys are equivalent', () => { expect(new Key({ key: 'x', shift: false, ctrl: true, alt: false, meta: false, }).equals(new Key({ key: 'x', shift: false, ctrl: true, alt: false, meta: false, }))).to.be.true; expect(new Key({ key: 'x', shift: false, ctrl: false, alt: false, meta: false, }).equals(new Key({ key: 'X', shift: true, ctrl: false, alt: false, meta: false, }))).to.be.false; }) }); });