Skip to content

Commit

Permalink
Merge pull request #1203 from aneoconsulting/fix/column-sort-not-saving
Browse files Browse the repository at this point in the history
fix: column sort not saving in storage
  • Loading branch information
ngruelaneo authored Aug 12, 2024
2 parents 31d3a63 + a72f0ea commit 66f542f
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 24 deletions.
18 changes: 13 additions & 5 deletions src/app/applications/components/table.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ describe('TasksTableComponent', () => {
isSimpleColumn: jest.fn(),
isNotSortableColumn: jest.fn(),
columnToLabel: jest.fn(),
saveColumns: jest.fn()
saveColumns: jest.fn(),
saveOptions: jest.fn(),
};

const mockNotificationService = {
Expand Down Expand Up @@ -295,10 +296,17 @@ describe('TasksTableComponent', () => {
});
});

it('should refresh data on options changes', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
describe('options changes', () => {
it('should refresh data', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
});

it('should save options', () => {
component.onOptionsChange();
expect(mockApplicationsIndexService.saveOptions).toHaveBeenCalled();
});
});

test('onDrop should call ApplicationsIndexService', () => {
Expand Down
18 changes: 13 additions & 5 deletions src/app/partitions/components/table.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ describe('TasksTableComponent', () => {
isSimpleColumn: jest.fn(),
isNotSortableColumn: jest.fn(),
columnToLabel: jest.fn(),
saveColumns: jest.fn()
saveColumns: jest.fn(),
saveOptions: jest.fn(),
};

const mockNotificationService = {
Expand Down Expand Up @@ -266,10 +267,17 @@ describe('TasksTableComponent', () => {
});
});

it('should refresh data on options changes', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
describe('options changes', () => {
it('should refresh data', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
});

it('should save options', () => {
component.onOptionsChange();
expect(mockPartitionsIndexService.saveOptions).toHaveBeenCalled();
});
});

test('onDrop should call PartitionsIndexService', () => {
Expand Down
18 changes: 13 additions & 5 deletions src/app/results/components/table.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ describe('TasksTableComponent', () => {
isSimpleColumn: jest.fn(),
isNotSortableColumn: jest.fn(),
columnToLabel: jest.fn(),
saveColumns: jest.fn()
saveColumns: jest.fn(),
saveOptions: jest.fn(),
};

const mockNotificationService = {
Expand Down Expand Up @@ -196,10 +197,17 @@ describe('TasksTableComponent', () => {
});
});

it('should refresh data on options changes', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
describe('options changes', () => {
it('should refresh data', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
});

it('should save options', () => {
component.onOptionsChange();
expect(mockResultsIndexService.saveOptions).toHaveBeenCalled();
});
});

test('onDrop should call ResultsIndexService', () => {
Expand Down
15 changes: 11 additions & 4 deletions src/app/sessions/components/table.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -687,11 +687,18 @@ describe('SessionsTableComponent', () => {
expect(component.data()).toEqual([]);
});
});

describe('options changes', () => {
it('should refresh data', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
});

it('should refresh data on options changes', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
it('should save options', () => {
component.onOptionsChange();
expect(mockSessionsIndexService.saveOptions).toHaveBeenCalled();
});
});

describe('on Pause', () => {
Expand Down
18 changes: 13 additions & 5 deletions src/app/tasks/components/table.component.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ describe('TasksTableComponent', () => {
isSimpleColumn: jest.fn(),
isNotSortableColumn: jest.fn(),
columnToLabel: jest.fn(),
saveColumns: jest.fn()
saveColumns: jest.fn(),
saveOptions: jest.fn(),
};

const mockNotificationService = {
Expand Down Expand Up @@ -213,11 +214,18 @@ describe('TasksTableComponent', () => {
expect(component.data()).toEqual([]);
});
});

describe('options changes', () => {
it('should refresh data', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
});

it('should refresh data on options changes', () => {
const spy = jest.spyOn(component.refresh$, 'next');
component.onOptionsChange();
expect(spy).toHaveBeenCalled();
it('should save options', () => {
component.onOptionsChange();
expect(mockTasksIndexService.saveOptions).toHaveBeenCalled();
});
});

it('should check if the task is retried', () => {
Expand Down
1 change: 1 addition & 0 deletions src/app/types/components/table.ts
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ export abstract class AbstractTableComponent<T extends DataRaw, F extends Filter
}

onOptionsChange() {
this.indexService.saveOptions(this.options);
this.refresh$.next();
}

Expand Down

1 comment on commit 66f542f

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lines Statements Branches Functions
Coverage: 100%
99.97% (4404/4405) 100% (844/844) 99.91% (1184/1185)

JUnit

Tests Skipped Failures Errors Time
1667 0 💤 0 ❌ 0 🔥 1m 16s ⏱️
Files coverage (100%)
File% Stmts% Branch% Funcs% LinesUncovered Line #s
All files99.9710099.91100 
applications100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
applications/components100100100100 
   table.component.html100100100100 
   table.component.ts100100100100 
applications/services100100100100 
   applications-filters.service.ts100100100100 
   applications-grpc.service.ts100100100100 
   applications-index.service.ts100100100100 
components100100100100 
   actions-toolbar-group.component.ts100100100100 
   actions-toolbar.component.ts100100100100 
   auto-complete.component.html100100100100 
   auto-complete.component.ts100100100100 
   auto-refresh-button.component.html100100100100 
   auto-refresh-button.component.ts100100100100 
   auto-refresh-dialog.component.html100100100100 
   auto-refresh-dialog.component.ts100100100100 
   columns-button.component.ts100100100100 
   columns-modify-dialog.component.html100100100100 
   columns-modify-dialog.component.ts100100100100 
   count-tasks-by-status.component.ts100100100100 
   icon-picker-dialog.component.html100100100100 
   icon-picker-dialog.component.ts100100100100 
   inspect-list.component.html100100100100 
   inspect-list.component.ts100100100100 
   inspection-header.component.html100100100100 
   inspection-header.component.ts100100100100 
   inspection-toolbar.component.html100100100100 
   inspection-toolbar.component.ts100100100100 
   manage-custom-dialog.component.html100100100100 
   manage-custom-dialog.component.ts100100100100 
   page-header.component.html100100100100 
   page-header.component.ts100100100100 
   page-section-header.component.ts100100100100 
   page-section.component.ts100100100100 
   refresh-button.component.ts100100100100 
   share-url.component.ts100100100100 
   show-action-area.component.html100100100100 
   show-action-area.component.ts100100100100 
   show-actions.component.html100100100100 
   show-actions.component.ts100100100100 
   show-card-content.component.html100100100100 
   show-card-content.component.ts100100100100 
   show-card.component.html100100100100 
   show-card.component.ts100100100100 
   show-page.component.html100100100100 
   show-page.component.ts100100100100 
   spinner.component.ts100100100100 
   table-actions-toolbar.component.html100100100100 
   table-actions-toolbar.component.ts100100100100 
   table-container.component.ts100100100100 
   table-dashboard-actions-toolbar.component.html100100100100 
   table-dashboard-actions-toolbar.component.ts100100100100 
   table-index-actions-toolbar.component.html100100100100 
   table-index-actions-toolbar.component.ts100100100100 
   view-tasks-by-status.component.ts100100100100 
components/filters100100100100 
   filters-chips.component.html100100100100 
   filters-chips.component.ts100100100100 
   filters-dialog-and.component.html100100100100 
   filters-dialog-and.component.ts100100100100 
   filters-dialog-filter-field.component.html100100100100 
   filters-dialog-filter-field.component.ts100100100100 
   filters-dialog-input.component.html100100100100 
   filters-dialog-input.component.ts100100100100 
   filters-dialog-or.component.html100100100100 
   filters-dialog-or.component.ts100100100100 
   filters-dialog.component.html100100100100 
   filters-dialog.component.ts100100100100 
   filters-toolbar.component.html100100100100 
   filters-toolbar.component.ts100100100100 
components/inspection100100100100 
   field-content.component.html100100100100 
   field-content.component.ts100100100100 
   inspection-card.component.html100100100100 
   inspection-card.component.ts100100100100 
   inspection-list-grid.component.html100100100100 
   inspection-list-grid.component.ts100100100100 
   inspection-object.component.html100100100100 
   inspection-object.component.ts100100100100 
   inspection.component.html100100100100 
   inspection.component.ts100100100100 
components/navigation100100100100 
   add-external-service-dialog.component.html100100100100 
   add-external-service-dialog.component.ts100100100100 
   change-language-button.component.html100100100100 
   change-language-button.component.ts100100100100 
   edit-external-service-dialog.component.html100100100100 
   edit-external-service-dialog.component.ts100100100100 
   external-services.component.html100100100100 
   external-services.component.ts100100100100 
   form-external-service.component.html100100100100 
   form-external-service.component.ts100100100100 
   manage-external-services-dialog.component.html100100100100 
   manage-external-services-dialog.component.ts100100100100 
   navigation.component.html100100100100 
   navigation.component.ts100100100100 
   theme-selector.component.html100100100100 
   theme-selector.component.ts100100100100 
components/statuses100100100100 
   add-statuses-group-dialog.component.ts100100100100 
   edit-status-group-dialog.component.ts100100100100 
   form-statuses-group.component.html100100100100 
   form-statuses-group.component.ts100100100100 
   manage-groups-dialog.component.html100100100100 
   manage-groups-dialog.component.ts100100100100 
components/table100100100100 
   table-actions.component.html100100100100 
   table-actions.component.ts100100100100 
   table-cell.component.html100100100100 
   table-cell.component.ts100100100100 
   table-column-header.component.html100100100100 
   table-column-header.component.ts100100100100 
   table-empty-data.component.ts100100100100 
   table-inspect-object-dialog.component.html100100100100 
   table-inspect-object-dialog.component.ts100100100100 
   table-inspect-object.component.html100100100100 
   table-inspect-object.component.ts100100100100 
   table.component.html100100100100 
   table.component.ts100100100100 
dashboard100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
dashboard/components100100100100 
   add-line-dialog.component.html100100100100 
   add-line-dialog.component.ts100100100100 
   edit-name-line-dialog.component.html100100100100 
   edit-name-line-dialog.component.ts100100100100 
   reorganize-lines-dialog.component.html100100100100 
   reorganize-lines-dialog.component.ts100100100100 
   split-lines-dialog.component.ts100100100100 
   statuses-group-card.component.html100100100100 
   statuses-group-card.component.ts100100100100 
dashboard/components/lines100100100100 
   applications-line.component.html100100100100 
   applications-line.component.ts100100100100 
   partitions-line.component.html100100100100 
   partitions-line.component.ts100100100100 
   results-line.component.html100100100100 
   results-line.component.ts100100100100 
   sessions-line.component.html100100100100 
   sessions-line.component.ts100100100100 
   task-by-status-line.component.html100100100100 
   task-by-status-line.component.ts100100100100 
   tasks-line.component.html100100100100 
   tasks-line.component.ts100100100100 
dashboard/services100100100100 
   dashboard-index.service.ts100100100100 
   dashboard-storage.service.ts100100100100 
healthcheck100100100100 
   healthcheck.component.html100100100100 
   healthcheck.component.ts100100100100 
healthcheck/services100100100100 
   healthcheck-grpc.service.ts100100100100 
partitions100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
   show.component.html100100100100 
   show.component.ts100100100100 
partitions/components100100100100 
   table.component.html100100100100 
   table.component.ts100100100100 
partitions/services100100100100 
   partitions-filters.service.ts100100100100 
   partitions-grpc.service.ts100100100100 
   partitions-index.service.ts100100100100 
   partitions-inspection.service.ts100100100100 
pipes100100100100 
   duration.pipe.ts100100100100 
   empty-cell.pipe.ts100100100100 
   pretty.pipe.ts100100100100 
profile100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
   types.ts100100100100 
results100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
   show.component.html100100100100 
   show.component.ts100100100100 
results/components100100100100 
   table.component.html100100100100 
   table.component.ts100100100100 
results/services100100100100 
   results-filters.service.ts100100100100 
   results-grpc.service.ts100100100100 
   results-index.service.ts100100100100 
   results-inspection.service.ts100100100100 
   results-statuses.service.ts100100100100 
services100100100100 
   auto-refresh.service.ts100100100100 
   cache.service.ts100100100100 
   default-config.service.ts100100100100 
   environment.service.ts100100100100 
   filters.service.ts100100100100 
   grpc-build-request.service.ts100100100100 
   grpc-sort-field.service.ts100100100100 
   icons.service.ts100100100100 
   navigation.service.ts100100100100 
   notification.service.ts100100100100 
   query-params.service.ts100100100100 
   share-url.service.ts100100100100 
   storage.service.ts100100100100 
   table-storage.service.ts100100100100 
   table-url.service.ts100100100100 
   table.service.ts100100100100 
   tasks-by-status.service.ts100100100100 
   user-grpc.service.ts100100100100 
   user.service.ts100100100100 
   utils.service.ts100100100100 
   versions-grpc.service.ts100100100100 
   versions.service.ts100100100100 
sessions100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
   show.component.html100100100100 
   show.component.ts100100100100 
sessions/components100100100100 
   table.component.html100100100100 
   table.component.ts100100100100 
sessions/services100100100100 
   sessions-filters.service.ts100100100100 
   sessions-grpc.service.ts100100100100 
   sessions-index.service.ts100100100100 
   sessions-inspection.service.ts100100100100 
   sessions-statuses.service.ts100100100100 
tasks100100100100 
   index.component.html100100100100 
   index.component.ts100100100100 
   show.component.html100100100100 
   show.component.ts100100100100 
tasks/components100100100100 
   manage-view-in-logs-dialog.component.html100100100100 
   manage-view-in-logs-dialog.component.ts100100100100 
   table.component.html100100100100 
   table.component.ts100100100100 
tasks/services100100100100 
   tasks-filters.service.ts100100100100 
   tasks-grpc.service.ts100100100100 
   tasks-index.service.ts100100100100 
   tasks-inspection.service.ts100100100100 
   tasks-statuses.service.ts100100100100 
tokens100100100100 
   filters.token.ts100100100100 
types100100100100 
   navigation.ts100100100100 
types/components99.7110099.13100 
   dashboard-line-table.ts100100100100 
   index.ts99.1510097.29100 
   show.ts100100100100 
   table.ts100100100100 
types/services100100100100 
   grpcService.ts100100100100 
   inspectionService.ts100100100100 

Please sign in to comment.