blob: 1e9da1e6b022cddbfd54205a0bfa3e2497a1f6ed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
odoo.define('point_of_sale.tests.NumberBuffer', function(require) {
'use strict';
const { Component, useState } = owl;
const { xml } = owl.tags;
const NumberBuffer = require('point_of_sale.NumberBuffer');
const makeTestEnvironment = require('web.test_env');
const testUtils = require('web.test_utils');
QUnit.module('unit tests for NumberBuffer', {
before() {},
});
QUnit.test('simple fast inputs with capture in between', async function(assert) {
assert.expect(3);
class Root extends Component {
constructor() {
super();
this.state = useState({ buffer: '' });
NumberBuffer.activate();
NumberBuffer.use({
nonKeyboardInputEvent: 'numpad-click-input',
state: this.state,
});
}
resetBuffer() {
NumberBuffer.capture();
NumberBuffer.reset();
}
}
Root.env = makeTestEnvironment();
Root.template = xml/* html */ `
<div>
<p><t t-esc="state.buffer" /></p>
<button class="one" t-on-click="trigger('numpad-click-input', { key: '1' })">1</button>
<button class="two" t-on-click="trigger('numpad-click-input', { key: '2' })">2</button>
<button class="reset" t-on-click="resetBuffer">reset</button>
</div>
`;
const root = new Root();
await root.mount(testUtils.prepareTarget());
const oneButton = root.el.querySelector('button.one');
const twoButton = root.el.querySelector('button.two');
const resetButton = root.el.querySelector('button.reset');
const bufferEl = root.el.querySelector('p');
testUtils.dom.click(oneButton);
testUtils.dom.click(twoButton);
await testUtils.nextTick();
assert.strictEqual(bufferEl.textContent, '12');
testUtils.dom.click(resetButton);
await testUtils.nextTick();
assert.strictEqual(bufferEl.textContent, '');
testUtils.dom.click(twoButton);
testUtils.dom.click(oneButton);
await testUtils.nextTick();
assert.strictEqual(bufferEl.textContent, '21');
root.unmount();
root.destroy();
});
});
|