diff options
Diffstat (limited to 'addons/web/static/tests/views/control_panel_tests.js')
| -rw-r--r-- | addons/web/static/tests/views/control_panel_tests.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/addons/web/static/tests/views/control_panel_tests.js b/addons/web/static/tests/views/control_panel_tests.js index ee191e4d3a9..f2654e55e1b 100644 --- a/addons/web/static/tests/views/control_panel_tests.js +++ b/addons/web/static/tests/views/control_panel_tests.js @@ -415,5 +415,86 @@ QUnit.module('Views', { controlPanel.destroy(); }); + + QUnit.test('load filter', async function (assert) { + assert.expect(1); + + var controlPanel = await createControlPanel({ + model: 'partner', + arch: "<search></search>", + data: this.data, + searchMenuTypes: ['filter'], + intercepts: { + load_filters: function (ev) { + ev.data.on_success([ + { + user_id: [2,"Mitchell Admin"], + name: 'sorted filter', + id: 5, + context: {}, + sort: "[\"foo\", \"-bar\"]", + domain: "[('user_id', '=', uid)]", + } + ]); + } + } + }); + + _.each(controlPanel.exportState().filters, function (filter) { + if (filter.type === 'favorite') { + assert.deepEqual(filter.orderedBy, + [{ + name: 'foo', + asc: true, + }, { + name: 'bar', + asc: false, + }], + 'the filter should have the right orderedBy values'); + } + }); + + controlPanel.destroy(); + }); + + QUnit.test('save filter', async function (assert) { + assert.expect(1); + + var controlPanel = await createControlPanel({ + model: 'partner', + arch: "<search></search>", + data: this.data, + searchMenuTypes: ['filter'], + intercepts: { + create_filter: function (ev) { + assert.strictEqual(ev.data.filter.sort, "[\"foo\",\"bar desc\"]", + 'The right format for the string "sort" should be sent to the server'); + }, + get_controller_query_params: function (ev) { + ev.data.callback({ + orderedBy: [ + { + name: 'foo', + asc: true, + }, { + name: 'bar', + asc: false, + } + ] + }); + } + } + }); + + controlPanel._onNewFavorite({ + data: { + description: 'Morbier', + type: 'favorite', + }, + stopPropagation: function () {return;} + }); + + controlPanel.destroy(); + }); }); }); |
