spiegel-keyman/common/web/keyboard-processor/tests/node/mocks.js
2023-03-17 13:17:34 +07:00

92 lines
No EOL
2.9 KiB
JavaScript

import { assert } from 'chai';
import { Mock } from '@keymanapp/keyboard-processor';
describe('Mocks', function() {
describe('app|les', () => {
const testMock = new Mock('apples', 3);
it('Cloning with .from()', () => {
assert.deepEqual(Mock.from(testMock), testMock);
assert.notStrictEqual(Mock.from(testMock), testMock);
});
it('getText', () => {
assert.equal(testMock.getText(), 'apples');
});
it('getTextBeforeCaret', () => {
assert.equal(testMock.getTextBeforeCaret(), 'app');
});
it('getTextAfterCaret', () => {
assert.equal(testMock.getTextAfterCaret(), 'les');
});
it('getSelectedText', () => {
assert.equal(testMock.getSelectedText(), '');
});
it('isSelectionEmpty', () => {
assert.isTrue(testMock.isSelectionEmpty());
});
it('clearSelection', () => {
let editMock = Mock.from(testMock);
editMock.clearSelection();
assert.equal(editMock.getText(), testMock.getTextBeforeCaret() + testMock.getTextAfterCaret());
assert.equal(editMock.getTextBeforeCaret(), testMock.getTextBeforeCaret());
assert.equal(editMock.getTextAfterCaret(), testMock.getTextAfterCaret());
assert.isTrue(editMock.isSelectionEmpty());
let postClear = Mock.from(editMock);
editMock.clearSelection(); // on same object; make sure its internal selection stuff updates correctly!
assert.notStrictEqual(postClear, editMock);
assert.deepEqual(postClear, editMock);
});
});
describe('app|les and ba|nanas', () => { // selection = 'les and ba'
const testMock = new Mock('apples and bananas', 3, 13);
it('Cloning with from()', () => {
assert.deepEqual(Mock.from(testMock), testMock);
assert.notStrictEqual(Mock.from(testMock), testMock);
});
it('getText', () => {
assert.equal(testMock.getText(), 'apples and bananas');
});
it('getTextBeforeCaret', () => {
assert.equal(testMock.getTextBeforeCaret(), 'app');
});
it('getTextAfterCaret', () => {
assert.equal(testMock.getTextAfterCaret(), 'nanas');
});
it('getSelectedText', () => {
assert.equal(testMock.getSelectedText(), 'les and ba');
});
it('isSelectionEmpty', () => {
assert.isFalse(testMock.isSelectionEmpty());
});
it('clearSelection', () => {
let editMock = Mock.from(testMock);
editMock.clearSelection();
assert.equal(editMock.getText(), testMock.getTextBeforeCaret() + testMock.getTextAfterCaret());
assert.equal(editMock.getTextBeforeCaret(), testMock.getTextBeforeCaret());
assert.equal(editMock.getTextAfterCaret(), testMock.getTextAfterCaret());
assert.isTrue(editMock.isSelectionEmpty());
let postClear = Mock.from(editMock);
editMock.clearSelection(); // on same object; make sure its internal selection stuff updates correctly!
assert.notStrictEqual(postClear, editMock);
assert.deepEqual(postClear, editMock);
});
});
});