forked from Techsystech/web
[IMP] web_widget_dropdown_dynamic: black, isort, prettier
parent
b0df022207
commit
2788bb6aa1
|
@ -0,0 +1 @@
|
|||
../../../../web_widget_dropdown_dynamic
|
|
@ -0,0 +1,6 @@
|
|||
import setuptools
|
||||
|
||||
setuptools.setup(
|
||||
setup_requires=['setuptools-odoo'],
|
||||
odoo_addon=True,
|
||||
)
|
|
@ -1,173 +1,187 @@
|
|||
odoo.define("web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests", function (
|
||||
require
|
||||
) {
|
||||
"use strict";
|
||||
odoo.define(
|
||||
"web_widget_dropdown_dynamic.web_widget_dropdown_dynamic_tests",
|
||||
function (require) {
|
||||
"use strict";
|
||||
|
||||
/* global QUnit*/
|
||||
/* global QUnit*/
|
||||
|
||||
var FormView = require("web.FormView");
|
||||
var testUtils = require("web.test_utils");
|
||||
var FormView = require("web.FormView");
|
||||
var testUtils = require("web.test_utils");
|
||||
|
||||
QUnit.module("web_widget_dropdown_dynamic", {}, function () {
|
||||
QUnit.test("values are fetched w/o context (char)", async function (assert) {
|
||||
assert.expect(2);
|
||||
QUnit.module("web_widget_dropdown_dynamic", {}, function () {
|
||||
QUnit.test(
|
||||
"values are fetched w/o context (char)",
|
||||
async function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
test_field: {string: "Test Field", type: "char"},
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
test_field: {string: "Test Field", type: "char"},
|
||||
},
|
||||
records: [{id: 1, test_field: ""}],
|
||||
},
|
||||
},
|
||||
records: [{id: 1, test_field: ""}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
return Promise.resolve([["value", "Title"]]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test("values are fetched w/o context (integer)", async function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
test_field: {string: "Test Field", type: "integer"},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
return Promise.resolve([["value", "Title"]]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
records: [{id: 1, test_field: 0}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
return Promise.resolve([[0, "Title"]]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='0']");
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test("values are fetched w/o context (selection)", async function (
|
||||
assert
|
||||
) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
test_field: {string: "Test Field", type: "selection"},
|
||||
},
|
||||
records: [{id: 1, test_field: ""}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
return Promise.resolve([["value", "Title"]]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test("values are fetched with changing context", async function (assert) {
|
||||
assert.expect(6);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
other_field: {string: "Other Field", type: "char"},
|
||||
test_field: {string: "Test Field", type: "char"},
|
||||
},
|
||||
records: [{id: 1, other_field: "", test_field: ""}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="other_field" />' +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values" context="{\'step\': other_field}"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
if (args.kwargs.context.step === "step-1") {
|
||||
return Promise.resolve([["value", "Title"]]);
|
||||
} else if (args.kwargs.context.step === "step-2") {
|
||||
return Promise.resolve([
|
||||
["value", "Title"],
|
||||
["value_2", "Title 2"],
|
||||
]);
|
||||
}
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
await testUtils.fields.editAndTrigger(
|
||||
form.$('.o_field_widget[name="other_field"]'),
|
||||
"step-1",
|
||||
["input"]
|
||||
form.destroy();
|
||||
}
|
||||
);
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
|
||||
await testUtils.fields.editAndTrigger(
|
||||
form.$('.o_field_widget[name="other_field"]'),
|
||||
"step-2",
|
||||
["input"]
|
||||
QUnit.test(
|
||||
"values are fetched w/o context (integer)",
|
||||
async function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
test_field: {string: "Test Field", type: "integer"},
|
||||
},
|
||||
records: [{id: 1, test_field: 0}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
return Promise.resolve([[0, "Title"]]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='0']");
|
||||
|
||||
form.destroy();
|
||||
}
|
||||
);
|
||||
assert.containsN(form, "option", 3);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
assert.containsOnce(form, "option[value='\"value_2\"']");
|
||||
|
||||
await testUtils.fields.editAndTrigger(
|
||||
form.$('.o_field_widget[name="other_field"]'),
|
||||
"step-other",
|
||||
["input"]
|
||||
QUnit.test(
|
||||
"values are fetched w/o context (selection)",
|
||||
async function (assert) {
|
||||
assert.expect(2);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
test_field: {
|
||||
string: "Test Field",
|
||||
type: "selection",
|
||||
},
|
||||
},
|
||||
records: [{id: 1, test_field: ""}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
return Promise.resolve([["value", "Title"]]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
|
||||
form.destroy();
|
||||
}
|
||||
);
|
||||
assert.containsN(form, "option", 1);
|
||||
|
||||
form.destroy();
|
||||
QUnit.test(
|
||||
"values are fetched with changing context",
|
||||
async function (assert) {
|
||||
assert.expect(6);
|
||||
|
||||
var form = await testUtils.createView({
|
||||
View: FormView,
|
||||
model: "demo_entry",
|
||||
data: {
|
||||
demo_entry: {
|
||||
fields: {
|
||||
other_field: {string: "Other Field", type: "char"},
|
||||
test_field: {string: "Test Field", type: "char"},
|
||||
},
|
||||
records: [{id: 1, other_field: "", test_field: ""}],
|
||||
},
|
||||
},
|
||||
arch:
|
||||
"<form>" +
|
||||
'<field name="other_field" />' +
|
||||
'<field name="test_field" widget="dynamic_dropdown" values="_get_test_field_values" context="{\'step\': other_field}"/>' +
|
||||
"</form>",
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === "_get_test_field_values") {
|
||||
if (args.kwargs.context.step === "step-1") {
|
||||
return Promise.resolve([["value", "Title"]]);
|
||||
} else if (args.kwargs.context.step === "step-2") {
|
||||
return Promise.resolve([
|
||||
["value", "Title"],
|
||||
["value_2", "Title 2"],
|
||||
]);
|
||||
}
|
||||
return Promise.resolve([]);
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
|
||||
await testUtils.fields.editAndTrigger(
|
||||
form.$('.o_field_widget[name="other_field"]'),
|
||||
"step-1",
|
||||
["input"]
|
||||
);
|
||||
assert.containsN(form, "option", 2);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
|
||||
await testUtils.fields.editAndTrigger(
|
||||
form.$('.o_field_widget[name="other_field"]'),
|
||||
"step-2",
|
||||
["input"]
|
||||
);
|
||||
assert.containsN(form, "option", 3);
|
||||
assert.containsOnce(form, "option[value='\"value\"']");
|
||||
assert.containsOnce(form, "option[value='\"value_2\"']");
|
||||
|
||||
await testUtils.fields.editAndTrigger(
|
||||
form.$('.o_field_widget[name="other_field"]'),
|
||||
"step-other",
|
||||
["input"]
|
||||
);
|
||||
assert.containsN(form, "option", 1);
|
||||
|
||||
form.destroy();
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue