Remove age and limit restrictions from dashboard links
Remove any age and limit restrictions from the query when drilling down into the dashboard. Change-Id: I406aa2cb93fe90edf38b3905589c6a9b173db4c6
This commit is contained in:
@@ -216,8 +216,19 @@
|
||||
this.sections = changes ? [{results: changes}] : [];
|
||||
},
|
||||
|
||||
_processQuery(query) {
|
||||
let tokens = query.split(' ');
|
||||
const invalidTokens = ['limit:', 'age:', '-age:'];
|
||||
tokens = tokens.filter(token => {
|
||||
return !invalidTokens.some(invalidToken => {
|
||||
return token.startsWith(invalidToken);
|
||||
});
|
||||
});
|
||||
return tokens.join(' ');
|
||||
},
|
||||
|
||||
_sectionHref(query) {
|
||||
return Gerrit.Nav.getUrlForSearchQuery(query);
|
||||
return Gerrit.Nav.getUrlForSearchQuery(this._processQuery(query));
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
@@ -433,6 +433,59 @@ limitations under the License.
|
||||
});
|
||||
});
|
||||
|
||||
suite('dashboard queries', () => {
|
||||
let element;
|
||||
let sandbox;
|
||||
|
||||
setup(() => {
|
||||
sandbox = sinon.sandbox.create();
|
||||
element = fixture('basic');
|
||||
});
|
||||
|
||||
teardown(() => { sandbox.restore(); });
|
||||
|
||||
test('query without age and limit unchanged', () => {
|
||||
const query = 'status:closed owner:me';
|
||||
assert.deepEqual(element._processQuery(query), query);
|
||||
});
|
||||
|
||||
test('query with age and limit', () => {
|
||||
const query = 'status:closed age:1week limit:10 owner:me';
|
||||
const expectedQuery = 'status:closed owner:me';
|
||||
assert.deepEqual(element._processQuery(query), expectedQuery);
|
||||
});
|
||||
|
||||
test('query with age', () => {
|
||||
const query = 'status:closed age:1week owner:me';
|
||||
const expectedQuery = 'status:closed owner:me';
|
||||
assert.deepEqual(element._processQuery(query), expectedQuery);
|
||||
});
|
||||
|
||||
test('query with limit', () => {
|
||||
const query = 'status:closed limit:10 owner:me';
|
||||
const expectedQuery = 'status:closed owner:me';
|
||||
assert.deepEqual(element._processQuery(query), expectedQuery);
|
||||
});
|
||||
|
||||
test('query with age as value and not key', () => {
|
||||
const query = 'status:closed random:age';
|
||||
const expectedQuery = 'status:closed random:age';
|
||||
assert.deepEqual(element._processQuery(query), expectedQuery);
|
||||
});
|
||||
|
||||
test('query with limit as value and not key', () => {
|
||||
const query = 'status:closed random:limit';
|
||||
const expectedQuery = 'status:closed random:limit';
|
||||
assert.deepEqual(element._processQuery(query), expectedQuery);
|
||||
});
|
||||
|
||||
test('query with -age key', () => {
|
||||
const query = 'status:closed -age:1week';
|
||||
const expectedQuery = 'status:closed';
|
||||
assert.deepEqual(element._processQuery(query), expectedQuery);
|
||||
});
|
||||
});
|
||||
|
||||
suite('gr-change-list sections', () => {
|
||||
let element;
|
||||
let sandbox;
|
||||
|
||||
Reference in New Issue
Block a user