Skip to content

Commit

Permalink
test: dashboard storage service (#737)
Browse files Browse the repository at this point in the history
Co-authored-by: yannick-aneo <[email protected]>
  • Loading branch information
fdewas-aneo and yannick-aneo authored Oct 17, 2023
1 parent 094ba8e commit 8ff7645
Showing 1 changed file with 82 additions and 0 deletions.
82 changes: 82 additions & 0 deletions src/app/dashboard/services/dashboard-storage.service.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import { TaskStatus } from '@aneoconsultingfr/armonik.api.angular';
import { TestBed } from '@angular/core/testing';
import { StorageService } from '@services/storage.service';
import { DashboardStorageService } from './dashboard-storage.service';
import { Line } from '../types';

describe('DashboardStorageService', () => {
let service: DashboardStorageService;

const mockStorageService = {
setItem: jest.fn(),
getItem: jest.fn()
};

const lines: Line[] = [
{
name: 'line1',
interval: 10,
hideGroupsHeader: false,
filters: [],
taskStatusesGroups: [
{ name: 'Success', color: 'green', statuses: [TaskStatus.TASK_STATUS_COMPLETED, TaskStatus.TASK_STATUS_PROCESSED]},
{ name: 'Running', color: 'yellow', statuses: [TaskStatus.TASK_STATUS_CREATING, TaskStatus.TASK_STATUS_PROCESSING]},
{ name: 'Error', color: 'red', statuses: [TaskStatus.TASK_STATUS_CANCELLED, TaskStatus.TASK_STATUS_TIMEOUT]}
],
},
{
name: 'line2',
interval: 20,
hideGroupsHeader: true,
filters: [],
taskStatusesGroups: [
{ name: 'Success', color: 'green', statuses: [TaskStatus.TASK_STATUS_COMPLETED, TaskStatus.TASK_STATUS_PROCESSED]},
{ name: 'Running', color: 'yellow', statuses: [TaskStatus.TASK_STATUS_CREATING, TaskStatus.TASK_STATUS_PROCESSING]},
{ name: 'Unspecified', color: 'grey', statuses: [TaskStatus.TASK_STATUS_UNSPECIFIED, TaskStatus.TASK_STATUS_RETRIED]}
],
}
];

beforeEach(() => {
service = TestBed.configureTestingModule({
providers: [
DashboardStorageService,
{ provide: StorageService, useValue: mockStorageService }
]
}).inject(DashboardStorageService);
});

it('should create', () => {
expect(service).toBeTruthy();
});

it('shoud save lines', () => {
service.saveLines(lines);
expect(mockStorageService.setItem).toHaveBeenCalledWith('dashboard-lines', lines);
});

it('should restore lines', () => {
mockStorageService.getItem.mockImplementationOnce(() => lines);
expect(service.restoreLines()).toEqual(lines);
});

it('should return null if there is no lines', () => {
mockStorageService.getItem.mockImplementation(() => undefined);
expect(service.restoreLines()).toEqual(null);
});

it('should save splitted lines', () => {
service.saveSplitLines(4);
expect(mockStorageService.setItem).toHaveBeenCalledWith('dashboard-split-lines', 4);
});

it('should restore splitted lines', () => {
mockStorageService.getItem.mockImplementationOnce(() => 2);
expect(service.restoreSplitLines()).toEqual(2);
});

it('should return null if there is no lines', () => {
mockStorageService.getItem.mockImplementation(() => undefined);
expect(service.restoreSplitLines()).toEqual(null);
});
});

1 comment on commit 8ff7645

@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: 88%
88.92% (1413/1589) 79.7% (271/340) 80.33% (335/417)

JUnit

Tests Skipped Failures Errors Time
473 0 💤 0 ❌ 0 🔥 1m 15s ⏱️
Files coverage (88%)
File% Stmts% Branch% Funcs% LinesUncovered Line #s
All files88.9279.780.3388.87 
applications/services100100100100 
   applications-filters.service.ts100100100100 
components92.594.1182.7993.51 
   actions-toolbar-group.component.ts100100100100 
   actions-toolbar.component.ts100100100100 
   auto-refresh-button.component.ts100100100100 
   auto-refresh-dialog.component.ts100100100100 
   columns-button.component.ts100100100100 
   columns-modify-dialog.component.ts28.570033.3365–123
   count-tasks-by-status.component.ts1005010010048
   page-header.component.ts8010008039
   page-section-header.component.ts8010008031
   page-section.component.ts100100100100 
   refresh-button.component.ts100100100100 
   share-url.component.ts92.851007592.337
   show-card-content.component.ts100100100100 
   spinner.component.ts100100100100 
   table-actions-toolbar.component.ts100100100100 
   view-tasks-by-status-dialog.component.ts100100100100 
   view-tasks-by-status.component.ts100100100100 
components/filters9578.9495.7494.89 
   filters-chips.component.ts100100100100 
   filters-dialog-and.component.ts100100100100 
   filters-dialog-filter-field.component.ts86.275.7592.385.9699–100, 132, 174, 198–202
   filters-dialog-input.component.ts92.8563.6387.592.5973–74
   filters-dialog-or.component.ts100100100100 
   filters-dialog.component.ts100100100100 
   filters-toolbar.component.ts100100100100 
components/navigation99.4410097.3699.42 
   add-external-service-dialog.component.ts100100100100 
   edit-external-service-dialog.component.ts100100100100 
   form-external-service.component.ts100100100100 
   manage-external-services-dialog.component.ts100100100100 
   navigation.component.ts98.1410088.8898.11215
   theme-selector.component.ts100100100100 
dashboard100100100100 
   index.component.ts100100100100 
dashboard/components68.138.8845.6768.24 
   add-line-dialog.component.ts55.55100055.5527–38
   add-statuses-group-dialog.component.ts45.45100045.4529–45
   edit-name-line-dialog.component.ts5010005031–46
   edit-status-group-dialog.component.ts41.66100041.6630–47
   form-name-line.component.ts47.360047.3657–88
   form-statuses-group.component.ts22.50022.582–159
   line.component.ts100100100100 
   manage-groups-dialog.component.ts100100100100 
   reorganize-lines-dialog.component.ts32.430034.28104–160
   split-lines-dialog.component.ts42.850042.8538–61
   statuses-group-card.component.ts100100100100 
dashboard/services55.2633.3330.7652.77 
   dashboard-index.service.ts26.080022.7210–49
   dashboard-storage.service.ts100100100100 
services98.3695.4195.698.23 
   auto-refresh.service.ts100100100100 
   date-handler.service.ts100100100100 
   default-config.service.ts100100100100 
   environment.service.ts80100507519
   filters.service.ts100100100100 
   icons.service.ts100100100100 
   navigation.service.ts10080100100109
   notification.service.ts100100100100 
   query-params.service.ts100100100100 
   share-url.service.ts100100100100 
   storage.service.ts98.0310010097.9595
   table-storage.service.ts500042.8511–31
   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.ts1007010010014, 25, 32
tasks/services76.7647.7282.8575.78 
   tasks-filters.service.ts100100100100 
   tasks-grpc.service.ts23.330020.6813–151
   tasks-index.service.ts100100100100 
   tasks-statuses.service.ts100100100100 
tokens100100100100 
   filters.token.ts100100100100 

Please sign in to comment.