odoo.define('web.base_import_tests', function (require) {
"use strict";
const KanbanView = require('web.KanbanView');
const ListView = require('web.ListView');
const PivotView = require('web.PivotView');
const testUtils = require('web.test_utils');
const createView = testUtils.createView;
QUnit.module('Base Import Tests', {
beforeEach: function () {
this.data = {
foo: {
fields: {
foo: {string: "Foo", type: "char"},
},
records: [
{id: 1, foo: "yop"},
]
},
};
}
});
QUnit.test('import in favorite dropdown in list', async function (assert) {
assert.expect(2);
const list = await createView({
View: ListView,
model: 'foo',
data: this.data,
arch: '',
});
testUtils.mock.intercept(list, 'do_action', function () {
assert.ok(true, "should have triggered a do_action");
});
await testUtils.dom.click(list.$('.o_favorite_menu button'));
assert.containsOnce(list, '.o_import_menu');
await testUtils.dom.click(list.$('.o_import_menu button'));
list.destroy();
});
QUnit.test('import favorite dropdown item should not in list with create="0"', async function (assert) {
assert.expect(1);
const list = await createView({
View: ListView,
model: 'foo',
data: this.data,
arch: '',
});
await testUtils.dom.click(list.$('.o_favorite_menu button'));
assert.containsNone(list, '.o_import_menu');
list.destroy();
});
QUnit.test('import favorite dropdown item should not in list with import="0"', async function (assert) {
assert.expect(1);
const list = await createView({
View: ListView,
model: 'foo',
data: this.data,
arch: '',
});
await testUtils.dom.click(list.$('.o_favorite_menu button'));
assert.containsNone(list, '.o_import_menu');
list.destroy();
});
QUnit.test('import in favorite dropdown in kanban', async function (assert) {
assert.expect(2);
const kanban = await createView({
View: KanbanView,
model: 'foo',
data: this.data,
arch: `
`,
});
testUtils.mock.intercept(kanban, 'do_action', function () {
assert.ok(true, "should have triggered a do_action");
});
await testUtils.dom.click(kanban.$('.o_favorite_menu button'));
assert.containsOnce(kanban, '.o_import_menu');
await testUtils.dom.click(kanban.$('.o_import_menu button'));
kanban.destroy();
});
QUnit.test('import favorite dropdown item should not in list with create="0"', async function (assert) {
assert.expect(1);
const kanban = await createView({
View: KanbanView,
model: 'foo',
data: this.data,
arch: `
`,
});
await testUtils.dom.click(kanban.$('.o_favorite_menu button'));
assert.containsNone(kanban, '.o_import_menu');
kanban.destroy();
});
QUnit.test('import dropdown favorite should not in kanban with import="0"', async function (assert) {
assert.expect(1);
const kanban = await createView({
View: KanbanView,
model: 'foo',
data: this.data,
arch: `
`,
});
await testUtils.dom.click(kanban.$('.o_favorite_menu button'));
assert.containsNone(kanban, '.o_import_menu');
kanban.destroy();
});
QUnit.test('import should not available in favorite dropdown in pivot (other than kanban or list)', async function (assert) {
assert.expect(1);
this.data.foo.fields.foobar = { string: "Fubar", type: "integer", group_operator: 'sum' };
const pivot = await createView({
View: PivotView,
model: 'foo',
data: this.data,
arch: '',
});
await testUtils.dom.click(pivot.$('.o_favorite_menu button'));
assert.containsNone(pivot, '.o_import_menu');
pivot.destroy();
});
});