[FIX] fix tests in autocompletion

This commit is contained in:
Géry Debongnie 2014-06-30 15:06:52 +02:00
parent cde4ad1159
commit 88bb66e784
2 changed files with 23 additions and 22 deletions

View File

@ -846,11 +846,11 @@ instance.web.SearchViewDrawer = instance.web.Widget.extend({
filters.push(new instance.web.search.Filter(item, group));
break;
case 'group':
self.inputs.push(new instance.web.search.Separator(this))
self.add_separator();
self.make_widgets(item.children, fields,
new instance.web.search.Group(group, 'w', item));
self.add_separator();
break;
self.inputs.push(new instance.web.search.Separator(this))
case 'field':
var field = this.make_field(
item, fields[item['attrs'].name], group);
@ -865,6 +865,11 @@ instance.web.SearchViewDrawer = instance.web.Widget.extend({
group.push(new instance.web.search.FilterGroup(filters, this));
}
},
add_separator: function () {
if (!(_.last(this.inputs) instanceof instance.web.search.Separator))
new instance.web.search.Separator(this);
},
/**
* Creates a field for the provided field descriptor item (which comes
* from fields_view_get)

View File

@ -571,7 +571,7 @@ openerp.testing.section('search.completions', {
ok(bob.label, "should have a label");
});
});
test("M2O expand", {asserts: 13}, function (instance, $s, mock) {
test("M2O expand", {asserts: 11}, function (instance, $s, mock) {
mock('dummy.model:name_search', function (args, kwargs) {
deepEqual(args, []);
strictEqual(kwargs.name, 'bob');
@ -583,19 +583,16 @@ openerp.testing.section('search.completions', {
{attrs: {string: 'Dummy'}}, {relation: 'dummy.model'}, view);
return f.expand("bob")
.done(function (c) {
equal(c.length, 3, "should return results + title");
var title = c[0];
equal(title.label, f.attrs.string, "title should match field name");
ok(!title.facet, "title should not have a facet");
equal(c.length, 2, "should return results");
var f1 = new instance.web.search.Facet(c[1].facet);
equal(c[1].label, "choice 1");
var f1 = new instance.web.search.Facet(c[0].facet);
equal(c[0].label, "choice 1");
equal(f1.get('category'), f.attrs.string);
equal(f1.get('field'), f);
deepEqual(f1.values.toJSON(), [{label: 'choice 1', value: 42}]);
var f2 = new instance.web.search.Facet(c[2].facet);
equal(c[2].label, "choice @");
var f2 = new instance.web.search.Facet(c[1].facet);
equal(c[1].label, "choice @");
equal(f2.get('category'), f.attrs.string);
equal(f2.get('field'), f);
deepEqual(f2.values.toJSON(), [{label: 'choice @', value: 43}]);
@ -635,7 +632,7 @@ openerp.testing.section('search.completions', {
{relation: 'dummy.model'}, view);
return f.expand("bob");
});
test("M2O custom operator", {asserts: 10}, function (instance, $s, mock) {
test("M2O custom operator", {asserts: 8}, function (instance, $s, mock) {
mock('dummy.model:name_search', function (args, kwargs) {
deepEqual(args, [], "should have no positional arguments");
// the operator is meant for the final search term generation, not the autocompletion
@ -650,13 +647,10 @@ openerp.testing.section('search.completions', {
return f.expand('bob')
.done(function (c) {
equal(c.length, 2, "should return result + title");
var title = c[0];
equal(title.label, f.attrs.string, "title should match field name");
ok(!title.facet, "title should not have a facet");
equal(c.length, 1, "should return result");
var f1 = new instance.web.search.Facet(c[1].facet);
equal(c[1].label, "Match");
var f1 = new instance.web.search.Facet(c[0].facet);
equal(c[0].label, "Match");
equal(f1.get('category'), f.attrs.string);
equal(f1.get('field'), f);
deepEqual(f1.values.toJSON(), [{label: 'Match', value: 42}]);
@ -1223,13 +1217,14 @@ openerp.testing.section('search.groupby', {
var view = makeSearchView(instance);
return view.appendTo($fix)
.done(function () {
// 3 filters, 3 filtergroups, 1 custom filter, 1 advanced, 1 Filters
// 3 filters, 3 filtergroups, 1 custom filter, 1 advanced, 1 Filters,
// and 1 SaveFilter widget
equal(view.drawer.inputs.length, 10, "should have 10 inputs total");
var groups = _.filter(view.drawer.inputs, function (f) {
return f instanceof instance.web.search.GroupbyGroup;
});
equal(groups.length, 3, "should have 3 GroupbyGroups");
groups[0].toggle(groups[0].filters[0]);
@ -1562,10 +1557,11 @@ openerp.testing.section('search.invisible', {
var done = $.Deferred();
view.complete_global_search({term: 'filter'}, function (compls) {
done.resolve();
strictEqual(compls.length, 2,
"should have 2 completions");
console.log("completions", compls);
strictEqual(compls.length, 5,
"should have 5 completions"); // 2 filters and 3 separators
deepEqual(_.pluck(compls, 'label'),
['Field 0', 'Filter on: Filter 0'],
[undefined, 'Field 0', 'Filter on: Filter 0', undefined, undefined],
"should complete on field 0 and filter 0");
});
return done;