style: Fix indentation in CandidateBox.test.js

This commit is contained in:
Herbert Lin 2024-05-13 23:19:44 -07:00
parent eb5787205e
commit defbdaaf69

View File

@ -332,98 +332,98 @@ it('CandidateBox show not be called if keyboard.candidateBox is undefined upon s
}); });
it('CandidateBox selection should trigger onChange', () => { it('CandidateBox selection should trigger onChange', () => {
const keyboard = new Keyboard({ const keyboard = new Keyboard({
layout: { layout: {
default: [ default: [
"a b {bksp}" "a b {bksp}"
] ]
}, },
layoutCandidates: { layoutCandidates: {
a: "1 2 3 4 5 6" a: "1 2 3 4 5 6"
}, },
onChange: jest.fn(), onChange: jest.fn(),
onChangeAll: jest.fn() onChangeAll: jest.fn()
});
let candidateBoxOnItemSelected;
const onSelect = jest.fn().mockImplementation((selectedCandidate) => {
candidateBoxOnItemSelected(selectedCandidate);
keyboard.candidateBox.destroy();
});
const candidateBoxRenderFn = keyboard.candidateBox.renderPage;
jest.spyOn(keyboard.candidateBox, "renderPage").mockImplementation((params) => {
candidateBoxOnItemSelected = params.onItemSelected;
params.onItemSelected = onSelect;
candidateBoxRenderFn(params);
});
keyboard.getButtonElement("a").click();
keyboard.candidateBox.candidateBoxElement.querySelector("li").click();
expect(keyboard.options.onChange.mock.calls[0][0]).toBe("a");
expect(keyboard.options.onChangeAll.mock.calls[0][0]).toMatchObject({"default": "a"});
expect(keyboard.options.onChange.mock.calls[1][0]).toBe("1");
expect(keyboard.options.onChangeAll.mock.calls[1][0]).toMatchObject({"default": "1"});
keyboard.destroy();
}); });
it('CandidateBox normalization will work', () => { let candidateBoxOnItemSelected;
const keyboard = new Keyboard({
layout: {
default: [
"a b {bksp}"
]
},
layoutCandidates: {
a: "신"
},
onChange: jest.fn(),
onChangeAll: jest.fn()
});
let candidateBoxOnItemSelected; const onSelect = jest.fn().mockImplementation((selectedCandidate) => {
candidateBoxOnItemSelected(selectedCandidate);
const onSelect = jest.fn().mockImplementation((selectedCandidate) => { keyboard.candidateBox.destroy();
candidateBoxOnItemSelected(selectedCandidate); });
keyboard.candidateBox.destroy();
}); const candidateBoxRenderFn = keyboard.candidateBox.renderPage;
const candidateBoxRenderFn = keyboard.candidateBox.renderPage; jest.spyOn(keyboard.candidateBox, "renderPage").mockImplementation((params) => {
candidateBoxOnItemSelected = params.onItemSelected;
jest.spyOn(keyboard.candidateBox, "renderPage").mockImplementation((params) => { params.onItemSelected = onSelect;
candidateBoxOnItemSelected = params.onItemSelected; candidateBoxRenderFn(params);
params.onItemSelected = onSelect; });
candidateBoxRenderFn(params);
}); keyboard.getButtonElement("a").click();
keyboard.candidateBox.candidateBoxElement.querySelector("li").click();
expect(keyboard.options.onChange.mock.calls[0][0]).toBe("a");
expect(keyboard.options.onChangeAll.mock.calls[0][0]).toMatchObject({"default": "a"});
expect(keyboard.options.onChange.mock.calls[1][0]).toBe("1");
expect(keyboard.options.onChangeAll.mock.calls[1][0]).toMatchObject({"default": "1"});
keyboard.destroy();
});
it('CandidateBox normalization will work', () => {
const keyboard = new Keyboard({
layout: {
default: [
"a b {bksp}"
]
},
layoutCandidates: {
a: "신"
},
onChange: jest.fn(),
onChangeAll: jest.fn()
});
let candidateBoxOnItemSelected;
keyboard.getButtonElement("a").click(); const onSelect = jest.fn().mockImplementation((selectedCandidate) => {
keyboard.candidateBox.candidateBoxElement.querySelector("li").click(); candidateBoxOnItemSelected(selectedCandidate);
keyboard.candidateBox.destroy();
});
const candidateBoxRenderFn = keyboard.candidateBox.renderPage;
expect(keyboard.options.onChange.mock.calls[0][0]).toBe("a"); jest.spyOn(keyboard.candidateBox, "renderPage").mockImplementation((params) => {
expect(keyboard.options.onChangeAll.mock.calls[0][0]).toMatchObject({"default": "a"}); candidateBoxOnItemSelected = params.onItemSelected;
params.onItemSelected = onSelect;
candidateBoxRenderFn(params);
});
// Selected candidate will be normalized keyboard.getButtonElement("a").click();
expect(keyboard.options.onChange.mock.calls[1][0]).toBe("신"); keyboard.candidateBox.candidateBoxElement.querySelector("li").click();
expect(keyboard.options.onChange.mock.calls[1][0].length).toBe(3);
expect(keyboard.options.onChangeAll.mock.calls[1][0]).toMatchObject({"default": "신"});
// Selected candidate will not be normalized expect(keyboard.options.onChange.mock.calls[0][0]).toBe("a");
keyboard.clearInput(); expect(keyboard.options.onChangeAll.mock.calls[0][0]).toMatchObject({"default": "a"});
keyboard.setOptions({ disableCandidateNormalization: true });
keyboard.getButtonElement("a").click(); // Selected candidate will be normalized
keyboard.candidateBox.candidateBoxElement.querySelector("li").click(); expect(keyboard.options.onChange.mock.calls[1][0]).toBe("신");
expect(keyboard.options.onChange.mock.calls[1][0].length).toBe(3);
expect(keyboard.options.onChange.mock.calls[2][0]).toBe("a"); expect(keyboard.options.onChangeAll.mock.calls[1][0]).toMatchObject({"default": "신"});
expect(keyboard.options.onChangeAll.mock.calls[2][0]).toMatchObject({"default": "a"});
expect(keyboard.options.onChange.mock.calls[3][0]).toBe("신"); // Selected candidate will not be normalized
expect(keyboard.options.onChange.mock.calls[3][0].length).toBe(1); keyboard.clearInput();
expect(keyboard.options.onChangeAll.mock.calls[3][0]).toMatchObject({"default": "신"}); keyboard.setOptions({ disableCandidateNormalization: true });
keyboard.destroy(); keyboard.getButtonElement("a").click();
}); keyboard.candidateBox.candidateBoxElement.querySelector("li").click();
expect(keyboard.options.onChange.mock.calls[2][0]).toBe("a");
expect(keyboard.options.onChangeAll.mock.calls[2][0]).toMatchObject({"default": "a"});
expect(keyboard.options.onChange.mock.calls[3][0]).toBe("신");
expect(keyboard.options.onChange.mock.calls[3][0].length).toBe(1);
expect(keyboard.options.onChangeAll.mock.calls[3][0]).toMatchObject({"default": "신"});
keyboard.destroy();
});