Skip to content

Commit

Permalink
Merge branch 'master' into remove-duplicate-segment
Browse files Browse the repository at this point in the history
  • Loading branch information
ckcherry23 authored Jan 26, 2024
2 parents 5800579 + 3cd680c commit 876d00a
Show file tree
Hide file tree
Showing 2 changed files with 340 additions and 1 deletion.
2 changes: 1 addition & 1 deletion docs/dg/settingUp.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<box type="info" seamless>

Type `java -version`, `npm -v` and `git --version` respectively on your OS terminal and ensure that you have the correct version of each prerequisite installed.
Type `java -version`, `node -v` and `git --version` respectively on your OS terminal and ensure that you have the correct version of each prerequisite installed.
</box>

<!-- ==================================================================================================== -->
Expand Down
339 changes: 339 additions & 0 deletions frontend/cypress/tests/codeView/codeView_renderFilterHash.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,339 @@
describe('render filter hash', () => {
it('search: url params should persist after change and reload', () => {
/* Check initial state */
cy.get('div.mui-textfield.search_box > input:visible')
.should('be.visible')
.invoke('val')
.should('eq', '');

/* Enter search and test URL before and after reload */
cy.get('div.mui-textfield.search_box > input:visible')
.should('be.visible')
.type('eugene{enter}');

cy.url()
.should('contain', 'search=eugene');

cy.reload();

cy.url()
.should('contain', 'search=eugene');
});

it('group by: url params should persist after change and reload', () => {
/* Check initial state */
cy.get('div.mui-select.grouping > select:visible')
.invoke('val')
.should('eq', 'groupByRepos');

cy.url()
.should('contain', 'groupSelect=groupByRepos');

/* Select group by none and test URL before and after reload */
cy.get('div.mui-select.grouping > select:visible')
.select('groupByNone');

cy.url()
.should('contain', 'groupSelect=groupByNone');

cy.reload();

cy.url()
.should('contain', 'groupSelect=groupByNone');

/* Select group by authors and test URL before and after reload */
cy.get('div.mui-select.grouping > select:visible')
.select('groupByAuthors');

cy.url()
.should('contain', 'groupSelect=groupByAuthors');

cy.reload();

cy.url()
.should('contain', 'groupSelect=groupByAuthors');
});

it('sort groups by: url params should persist after change and reload', () => {
/* Check initial state */
cy.get('div.mui-select.sort-group > select:visible')
.invoke('val')
.should('eq', 'groupTitle dsc');

cy.url()
.should('contain', 'sort=groupTitle%20dsc');

/* Select sort by group title ascending and test URL before and after reload */
cy.get('div.mui-select.sort-group > select:visible')
.select('groupTitle');

cy.url()
.should('contain', 'sort=groupTitle');

cy.reload();

cy.url()
.should('contain', 'sort=groupTitle');

/* Select sort by contribution descending and test URL before and after reload */
cy.get('div.mui-select.sort-group > select:visible')
.select('totalCommits dsc');

cy.url()
.should('contain', 'sort=totalCommits%20dsc');

cy.reload();

cy.url()
.should('contain', 'sort=totalCommits%20dsc');

/* Select sort by contribution ascending and test URL before and after reload */
cy.get('div.mui-select.sort-group > select:visible')
.select('totalCommits');

cy.url()
.should('contain', 'sort=totalCommits');

cy.reload();

cy.url()
.should('contain', 'sort=totalCommits');

/* Select sort by variance descending and test URL before and after reload */
cy.get('div.mui-select.sort-group > select:visible')
.select('variance dsc');

cy.url()
.should('contain', 'sort=variance%20dsc');

cy.reload();

cy.url()
.should('contain', 'sort=variance%20dsc');

/* Select sort by variance ascending and test URL before and after reload */
cy.get('div.mui-select.sort-group > select:visible')
.select('variance');

cy.url()
.should('contain', 'sort=variance');

cy.reload();

cy.url()
.should('contain', 'sort=variance');
});

it('sort within groups by: url params should persist after change and reload', () => {
/* Check initial state */
cy.get('div.mui-select.sort-within-group > select:visible')
.invoke('val')
.should('eq', 'title');

cy.url()
.should('contain', 'sortWithin=title');

/* Select sort by group title ascending and test URL before and after reload */
cy.get('div.mui-select.sort-within-group > select:visible')
.select('title dsc');

cy.url()
.should('contain', 'sortWithin=title');

cy.reload();

cy.url()
.should('contain', 'sortWithin=title');

/* Select sort by contribution descending and test URL before and after reload */
cy.get('div.mui-select.sort-within-group > select:visible')
.select('totalCommits dsc');

cy.url()
.should('contain', 'sortWithin=totalCommits%20dsc');

cy.reload();

cy.url()
.should('contain', 'sortWithin=totalCommits%20dsc');

/* Select sort by contribution ascending and test URL before and after reload */
cy.get('div.mui-select.sort-within-group > select:visible')
.select('totalCommits');

cy.url()
.should('contain', 'sortWithin=totalCommits');

cy.reload();

cy.url()
.should('contain', 'sortWithin=totalCommits');

/* Select sort by variance descending and test URL before and after reload */
cy.get('div.mui-select.sort-within-group > select:visible')
.select('variance dsc');

cy.url()
.should('contain', 'sortWithin=variance%20dsc');

cy.reload();

cy.url()
.should('contain', 'sortWithin=variance%20dsc');

/* Select sort by variance ascending and test URL before and after reload */
cy.get('div.mui-select.sort-within-group > select:visible')
.select('variance');

cy.url()
.should('contain', 'sortWithin=variance');

cy.reload();

cy.url()
.should('contain', 'sortWithin=variance');
});

it('granularity: url params should persist after change and reload', () => {
/* Check initial state */
cy.get('div.mui-select.granularity > select:visible')
.invoke('val')
.should('eq', 'commit');

cy.url()
.should('contain', 'timeframe=commit');

/* Select timeframe as day and test URL before and after reload */
cy.get('div.mui-select.granularity > select:visible')
.select('day');

cy.url()
.should('contain', 'timeframe=day');

cy.reload();

cy.url()
.should('contain', 'timeframe=day');

/* Select timeframe as week and test URL before and after reload */
cy.get('div.mui-select.granularity > select:visible')
.select('week');

cy.url()
.should('contain', 'timeframe=week');

cy.reload();

cy.url()
.should('contain', 'timeframe=week');
});

it('since: url params should persist after change and reload', () => {
/* Check initial state */
cy.get('input[name="since"]:visible')
.invoke('val')
.should('eq', '2018-05-03');

cy.url()
.should('contain', 'since=2018-05-03');

/* Modify since date and test URL before and after reload */
cy.get('input[name="since"]:visible')
.type('2019-06-04');

cy.url()
.should('contain', 'since=2019-06-04');

cy.reload();

cy.url()
.should('contain', 'since=2019-06-04');
});

it('until: url params should persist after change and reload', () => {
/* Check initial state (will require dayjs for getting current date) */
// cy.get('input[name="until"]:visible')
// .invoke('val')
// .should('eq', dayjs().format('YYYY-MM-DD'));

// cy.url()
// .should('contain', 'date=2023-07-06');

/* Modify since date and test URL before and after reload */
cy.get('input[name="until"]:visible')
.type('2019-06-04');

cy.url()
.should('contain', 'until=2019-06-04');

cy.reload();

cy.url()
.should('contain', 'until=2019-06-04');
});

it('breakdown by file type: url params should persist after change and reload', () => {
cy.get('#summary label.filter-breakdown input:visible')
.should('not.be.checked');

cy.url()
.should('contain', 'breakdown=false');

cy.get('#summary label.filter-breakdown input:visible')
.check();

cy.reload();

cy.url()
.should('contain', 'breakdown=true');
});

it('merge all groups: url params should persist after change and reload', () => {
cy.get('#summary label.merge-group > input:visible')
.should('be.visible')
.check();

cy.url()
.should('contain', 'mergegroup=reposense%2FRepoSense%5Bcypress%5D');

cy.reload();

cy.url()
.should('contain', 'mergegroup=reposense%2FRepoSense%5Bcypress%5D');
});

it('checked file types: url params should persist after change and reload', () => {
cy.get('#summary label.filter-breakdown input:visible')
.should('not.be.checked');

cy.url()
.should('not.contain', 'gradle');

cy.get('#summary label.filter-breakdown input:visible')
.check()
.should('be.checked');

cy.get('#summary div.fileTypes input[id="gradle"]')
.should('be.checked');

cy.url()
.should('contain', 'gradle');

cy.reload();

cy.url()
.should('contain', 'gradle');

cy.get('#summary div.fileTypes input[id="gradle"]')
.uncheck()
.should('not.be.checked');

cy.url()
.should('not.contain', 'gradle');

cy.reload();

cy.url()
.should('not.contain', 'gradle');
});
});

0 comments on commit 876d00a

Please sign in to comment.