Files
odoo_source/addons/web/static/tests/chrome/pager_tests.js
T
ab56e637b7 [REF] web: adapt code after jQuery update
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>
2019-03-06 20:07:17 +01:00

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'));
});
});
});