Skip to content

Commit

Permalink
Merge pull request #224 from zimmerman-team/fix/2430
Browse files Browse the repository at this point in the history
2430
  • Loading branch information
stephanoshadjipetrou authored Sep 21, 2020
2 parents 9dc569b + 014ff12 commit 9bf5f58
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 92 deletions.
29 changes: 16 additions & 13 deletions cypress/integration/apiDocNavigation.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,21 @@ const categories: string[] = [
// 'Transaction List',
// 'Transaction Aggregations',
// 'DataStore Search Engine',
'Budget List',
'Budget Aggregations',
'Codelist Meta List',
'Country List',
'Dataset List',
'Location List',
'Organisation List',
'Publisher List',
'Region List',
'Result List',
'Result Aggregations',
'Sector List',
'Transaction List',
// 'Budget List',
// 'Budget Aggregations',
// 'Codelist Meta List',
// 'Country List',
// 'Dataset List',
// 'Location List',
// 'Organisation List',
// 'Publisher List',
// 'Region List',
// 'Result List',
// 'Result Aggregations',
// 'Sector List',
// 'Transaction List',
'API Version 1 (Django REST API)',
'API Version 2 (Solr API)',
];

describe('API Documentation - navigation', function () {
Expand All @@ -49,6 +51,7 @@ describe('API Documentation - navigation', function () {

it('should navigate to correct item when clicked', function () {
// Weird behavior in headless browser, therefore checking on url instead of content.
cy.contains('API Version 1 (Django REST API)').click();
cy.contains('Activity List').click();
cy.contains('Request parameters').click();
cy.contains('GET iati_identifier (optional)').click();
Expand Down
5 changes: 4 additions & 1 deletion cypress/integration/apiDocSearch.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ describe('API Documentation - search', function () {
it('should be able to type in "Activity List" and only get results with "Activity List" in it', function () {
cy.get('[class*= ApiDocSearchBoxContainer]').should('exist');
cy.get('.MuiInputBase-input').type('Activity List');
cy.get('[class*= MuiTreeView-root]').should(
cy.get('[class*= MuiTreeView-root]')
.should('contain.text', 'API Version 1 (Django REST API)')
.click();
cy.get('[class*= MuiTreeItem-label]').should(
'contain.text',
'Activity List'
);
Expand Down
146 changes: 68 additions & 78 deletions src/app/modules/documentation-module/common/DocSideBar/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,92 +11,82 @@ export function getResults(data, searchVal) {
let catIndex = 0;
let item1Index = 0;
let item2Index = 0;
let emptyCategory = false;
if (categoryPass) {
results.push({ ...category, item: [] });
results.push(category);
catIndex = results.length - 1;
emptyCategory = true;
}
category.item.forEach((item1) => {
item1Pass = item1.name.indexOf(searchValue) > -1;
if (!categoryPass && item1Pass) {
results.push({ ...category, item: [] });
catIndex = results.length - 1;
emptyCategory = false;
categoryPass = true;
}
if (item1Pass) {
results[catIndex].item.push({ ...item1, item: [] });
item1Index = results[catIndex].item.length - 1;
emptyCategory = false;
}
if (item1.item) {
item1.item.forEach((item2) => {
item2Pass = item2.name.indexOf(searchValue) > -1;
if ((!categoryPass || !item1Pass) && item2Pass) {
if (!categoryPass) {
results.push({ ...category, item: [] });
catIndex = results.length - 1;
emptyCategory = false;
categoryPass = true;
}
if (!item1Pass) {
results[catIndex].item.push({ ...item1, item: [] });
item1Index = results[catIndex].item.length - 1;
emptyCategory = false;
item1Pass = true;
if (!categoryPass) {
category.item.forEach((item1) => {
item1Pass = item1.name.toLowerCase().indexOf(searchValue) > -1;
if (!categoryPass && item1Pass) {
results.push({ ...category, item: [] });
catIndex = results.length - 1;
categoryPass = true;
}
if (item1Pass) {
results[catIndex].item.push(item1);
item1Index = results[catIndex].item.length - 1;
} else if (item1.item) {
item1.item.forEach((item2) => {
item2Pass = item2.name.toLowerCase().indexOf(searchValue) > -1;
if ((!categoryPass || !item1Pass) && item2Pass) {
if (!categoryPass) {
results.push({ ...category, item: [] });
catIndex = results.length - 1;
categoryPass = true;
}
if (!item1Pass) {
results[catIndex].item.push({ ...item1, item: [] });
item1Index = results[catIndex].item.length - 1;
item1Pass = true;
}
}
}
if (item2Pass) {
results[catIndex].item[item1Index].item.push({
...item2,
item: [],
});
item2Index =
results[results.length - 1].item[item1Index].item.length - 1;
}
if (item2.item) {
item2.item.forEach((item3) => {
item3Pass = item3.name.indexOf(searchValue) > -1;
if ((!categoryPass || !item1Pass || !item2Pass) && item3Pass) {
if (!categoryPass) {
results.push({ ...category, item: [] });
catIndex = results.length - 1;
emptyCategory = false;
categoryPass = true;
}
if (!item1Pass) {
results[catIndex].item.push({ ...item1, item: [] });
item1Index = results[catIndex].item.length - 1;
emptyCategory = false;
item1Pass = true;
if (item2Pass) {
results[catIndex].item[item1Index].item.push(item2);
item2Index =
results[results.length - 1].item[item1Index].item.length - 1;
} else if (item2.item) {
item2.item.forEach((item3) => {
item3Pass =
item3.name.toLowerCase().indexOf(searchValue) > -1;
if (
(!categoryPass || !item1Pass || !item2Pass) &&
item3Pass
) {
if (!categoryPass) {
results.push({ ...category, item: [] });
catIndex = results.length - 1;
categoryPass = true;
}
if (!item1Pass) {
results[catIndex].item.push({ ...item1, item: [] });
item1Index = results[catIndex].item.length - 1;
item1Pass = true;
}
if (!item2Pass) {
results[catIndex].item[item1Index].item.push({
...item2,
item: [],
});
item2Index =
results[results.length - 1].item[item1Index].item
.length - 1;
item2Pass = true;
}
}
if (!item2Pass) {
results[catIndex].item[item1Index].item.push({
...item2,
if (item3Pass) {
results[catIndex].item[item1Index].item[
item2Index
].item.push({
...item3,
item: [],
});
item2Index =
results[results.length - 1].item[item1Index].item.length -
1;
item2Pass = true;
}
}
if (item3Pass) {
results[catIndex].item[item1Index].item[item2Index].item.push(
{
...item3,
item: [],
}
);
}
});
}
});
}
});
if (emptyCategory) {
results[results.length - 1] = category;
});
}
});
}
});
}
});
return results;
Expand Down

0 comments on commit 9bf5f58

Please sign in to comment.