mirror of
https://github.com/ansible/awx.git
synced 2026-02-15 10:10:01 -03:30
Merge pull request #1669 from jakemcdermott/fix-1668
use icontains when expected for searches
This commit is contained in:
@@ -104,6 +104,7 @@ function QuerysetService ($q, Rest, ProcessErrors, $rootScope, Wait, DjangoSearc
|
|||||||
}
|
}
|
||||||
let paramString = exclude ? "not__" : "";
|
let paramString = exclude ? "not__" : "";
|
||||||
let valueString = paramParts[1];
|
let valueString = paramParts[1];
|
||||||
|
|
||||||
if(keySplit.length === 1) {
|
if(keySplit.length === 1) {
|
||||||
if(searchTerm && !lessThanGreaterThan) {
|
if(searchTerm && !lessThanGreaterThan) {
|
||||||
if(singleSearchParam) {
|
if(singleSearchParam) {
|
||||||
@@ -407,9 +408,9 @@ function QuerysetService ($q, Rest, ProcessErrors, $rootScope, Wait, DjangoSearc
|
|||||||
if (termParts.length === 1) {
|
if (termParts.length === 1) {
|
||||||
termParams = searchWithoutKey(term, singleSearchParam);
|
termParams = searchWithoutKey(term, singleSearchParam);
|
||||||
} else if ((isAnsibleFactField && isAnsibleFactField(termParts)) || (isFilterableBaseField && isFilterableBaseField(termParts))) {
|
} else if ((isAnsibleFactField && isAnsibleFactField(termParts)) || (isFilterableBaseField && isFilterableBaseField(termParts))) {
|
||||||
termParams = this.encodeParam({ term, singleSearchParam });
|
termParams = this.encodeParam({ term, singleSearchParam, searchTerm: true });
|
||||||
} else if (isRelatedField && isRelatedField(termParts)) {
|
} else if (isRelatedField && isRelatedField(termParts)) {
|
||||||
termParams = this.encodeParam({ term, singleSearchParam, related: true });
|
termParams = this.encodeParam({ term, singleSearchParam, relatedSearchTerm: true });
|
||||||
} else {
|
} else {
|
||||||
termParams = searchWithoutKey(term, singleSearchParam);
|
termParams = searchWithoutKey(term, singleSearchParam);
|
||||||
}
|
}
|
||||||
@@ -458,9 +459,9 @@ function QuerysetService ($q, Rest, ProcessErrors, $rootScope, Wait, DjangoSearc
|
|||||||
if (termParts.length === 1) {
|
if (termParts.length === 1) {
|
||||||
removed = searchWithoutKey(term, singleSearchParam);
|
removed = searchWithoutKey(term, singleSearchParam);
|
||||||
} else if ((isAnsibleFactField && isAnsibleFactField(termParts)) || (isFilterableBaseField && isFilterableBaseField(termParts))) {
|
} else if ((isAnsibleFactField && isAnsibleFactField(termParts)) || (isFilterableBaseField && isFilterableBaseField(termParts))) {
|
||||||
removed = this.encodeParam({ term, singleSearchParam });
|
removed = this.encodeParam({ term, singleSearchParam, searchTerm: true });
|
||||||
} else if (isRelatedField && isRelatedField(termParts)) {
|
} else if (isRelatedField && isRelatedField(termParts)) {
|
||||||
removed = this.encodeParam({ term, singleSearchParam, related: true });
|
removed = this.encodeParam({ term, singleSearchParam, relatedSearchTerm: true });
|
||||||
} else {
|
} else {
|
||||||
removed = searchWithoutKey(term, singleSearchParam);
|
removed = searchWithoutKey(term, singleSearchParam);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,32 @@ describe('Service: QuerySet', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('getSearchInputQueryset', () => {
|
||||||
|
it('creates the expected queryset', () =>{
|
||||||
|
spyOn(QuerySet, 'encodeParam').and.callThrough();
|
||||||
|
|
||||||
|
const term = 'name:foo';
|
||||||
|
const isFilterableBaseField = () => true;
|
||||||
|
const isRelatedField = () => false;
|
||||||
|
|
||||||
|
expect(QuerySet.getSearchInputQueryset(term, isFilterableBaseField, isRelatedField)).toEqual({ name__icontains_DEFAULT: 'foo' });
|
||||||
|
expect(QuerySet.encodeParam).toHaveBeenCalledWith({ term: "name:foo", searchTerm: true, singleSearchParam: null });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('removeTermsFromQueryset', () => {
|
||||||
|
it('creates the expected queryset', () =>{
|
||||||
|
spyOn(QuerySet, 'encodeParam').and.callThrough();
|
||||||
|
|
||||||
|
const queryset = { page_size: "20", order_by: "name", project__search_DEFAULT: "foo" };
|
||||||
|
const term = 'project:foo';
|
||||||
|
const isFilterableBaseField = () => false;
|
||||||
|
const isRelatedField = () => true;
|
||||||
|
|
||||||
|
expect(QuerySet.removeTermsFromQueryset(queryset, term, isFilterableBaseField, isRelatedField)).toEqual({ page_size: "20", order_by: "name" });
|
||||||
|
expect(QuerySet.encodeParam).toHaveBeenCalledWith({ term: 'project:foo', relatedSearchTerm: true, singleSearchParam: null });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('fn search', () => {
|
describe('fn search', () => {
|
||||||
let pattern = /\/api\/v2\/inventories\/(.+)\/groups\/*/,
|
let pattern = /\/api\/v2\/inventories\/(.+)\/groups\/*/,
|
||||||
|
|||||||
Reference in New Issue
Block a user