Part of task 1896658 Co-authored-by: Aaron Bohy <aab@odoo.com> Co-authored-by: Christophe Matthieu <chm@odoo.com> Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com> Co-authored-by: David Monjoie <dmo@odoo.com> Co-authored-by: Martin Geubelle <mge@odoo.com> Co-authored-by: svs-odoo <svs@odoo.com> Co-authored-by: Vincent Schippefilt <vsc@odoo.com>
94 lines
3.1 KiB
JavaScript
94 lines
3.1 KiB
JavaScript
odoo.define('web.pager_tests', function (require) {
|
|
"use strict";
|
|
|
|
var Pager = require('web.Pager');
|
|
var concurrency = require('web.concurrency');
|
|
var testUtils = require('web.test_utils');
|
|
|
|
QUnit.module('chrome', {}, function () {
|
|
|
|
QUnit.module('Pager');
|
|
|
|
QUnit.test('basic stuff', async function (assert) {
|
|
assert.expect(2);
|
|
|
|
var pager = new Pager(null, 10, 1, 4);
|
|
pager.appendTo($('#qunit-fixture'));
|
|
await testUtils.nextTick();
|
|
|
|
assert.strictEqual(pager.state.current_min, 1,
|
|
"current_min should be set to 1");
|
|
|
|
// click on next
|
|
await testUtils.dom.click(pager.$('.o_pager_next'));
|
|
assert.strictEqual(pager.state.current_min, 5,
|
|
"current_min should now be 5");
|
|
|
|
pager.destroy();
|
|
});
|
|
|
|
QUnit.test('edit the pager', async function (assert) {
|
|
assert.expect(5);
|
|
|
|
var pager = new Pager(null, 10, 1, 4);
|
|
pager.appendTo($('#qunit-fixture'));
|
|
await testUtils.nextTick();
|
|
|
|
// enter edition
|
|
await testUtils.dom.click(pager.$('.o_pager_value'));
|
|
assert.containsOnce(pager, 'input',
|
|
"the pager should contain an input");
|
|
assert.strictEqual(pager.$('input').val(), '1-4',
|
|
"the input should have correct value");
|
|
|
|
// change the limit
|
|
await testUtils.fields.editInput(pager.$('input'), '1-6');
|
|
await testUtils.fields.triggerKeydown(pager.$('input'), 'enter');
|
|
assert.strictEqual(pager.state.limit, 6,
|
|
"the limit should have been updated");
|
|
assert.strictEqual(pager.state.current_min, 1,
|
|
"the current_min should not have changed");
|
|
assert.strictEqual(pager.$('.o_pager_value').text(), '1-6',
|
|
"the input should have correct value");
|
|
|
|
pager.destroy();
|
|
});
|
|
|
|
QUnit.test('disabling the pager', async function (assert) {
|
|
assert.expect(4);
|
|
|
|
var pager = new Pager(null, 10, 1, 4);
|
|
pager.appendTo($('#qunit-fixture'));
|
|
await testUtils.nextTick();
|
|
await pager.disable();
|
|
|
|
// try to go to the next or previous pages
|
|
await testUtils.dom.click(pager.$('.o_pager_next'));
|
|
assert.strictEqual(pager.state.current_min, 1,
|
|
"current_min should still be 1");
|
|
await testUtils.dom.click(pager.$('.o_pager_previous'));
|
|
assert.strictEqual(pager.state.current_min, 1,
|
|
"current_min should still be 1");
|
|
|
|
// try to change the limit
|
|
await testUtils.dom.click(pager.$('.o_pager_value'));
|
|
assert.containsNone(pager, 'input',
|
|
"the pager should not contain an input");
|
|
|
|
// a common use is to disable the pager before reloading the data, and
|
|
// re-enable it once they have been loaded
|
|
// the following emulates this situation
|
|
pager.on('pager_changed', null, function () {
|
|
pager.disable();
|
|
concurrency.delay(0).then(function () {
|
|
assert.ok(pager.disabled, "pager should still be disabled");
|
|
pager.destroy();
|
|
});
|
|
});
|
|
pager.enable();
|
|
await testUtils.dom.click(pager.$('.o_pager_next'));
|
|
});
|
|
});
|
|
|
|
});
|