From 47a109206c3a6175bbbca93e9720efb94b127a7b Mon Sep 17 00:00:00 2001 From: 5Amogh <amoghavarsh@navadhiti.com> Date: Wed, 16 Nov 2022 10:57:55 +0530 Subject: [PATCH] Unit tests added and logs removed --- .../program-datasets.component.spec.data.ts | 240 ++++++++++++------ .../program-datasets.component.spec.ts | 39 ++- .../program-datasets.component.ts | 17 +- .../shared/pd-filters/pd-filters.component.ts | 2 - 4 files changed, 200 insertions(+), 98 deletions(-) diff --git a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.data.ts b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.data.ts index 62d7933c5b..563bae08a5 100644 --- a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.data.ts +++ b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.data.ts @@ -2915,90 +2915,162 @@ export let mockData = { }, ], }, - selectedReportWithConfigurableFilters: { - name: "Filtered task detail report", - encrypt: true, - datasetId: "ml-filtered-task-detail-exhaust", - roles: ["PROGRAM_MANAGER"], - configurableFilters: true, - filters: [ - { - type: "equals", - dimension: "private_program", - value: "false", - }, - { - type: "equals", - dimension: "sub_task_deleted_flag", - value: "false", - }, - { - type: "equals", - dimension: "task_deleted_flag", - value: "false", - }, - { - type: "equals", - dimension: "project_deleted_flag", - value: "false", - }, - { - type: "equals", - dimension: "program_id", - value: "$programId", - }, - { - type: "equals", - dimension: "solution_id", - value: "$solutionId", - }, - { - type: "equals", - dimension: "district_externalId", - value: "$district_externalId", - }, - { - type: "equals", - dimension: "organisation_id", - value: "$organisation_id", - }, - { - type: "greaterthan", - dimension: "task_count", - value: "$task_count", - }, - { - type: "greaterthan", - dimension: "task_evidence_count", - value: "$task_evidence_count", - }, - { - type: "greaterthan", - dimension: "project_evidence_count", - value: "$project_evidence_count", - }, - ], - uiFilters: [ - { - label: "Minimum no. of tasks in the project", - controlType: "number", - reference: "task_count", - defaultValue: 5, - }, - { - label: "Minimum no. of task evidence", - controlType: "number", - reference: "task_evidence_count", - defaultValue: 2, - }, - { - label: "Minimum no. of project evidence", - controlType: "number", - reference: "project_evidence_count", - defaultValue: 1, - }, - ], - }, + selectedReportWithConfigurableFilters: [ + { + name: "Filtered task detail report", + encrypt: true, + datasetId: "ml-filtered-task-detail-exhaust", + roles: ["PROGRAM_MANAGER"], + configurableFilters: true, + filters: [ + { + type: "equals", + dimension: "private_program", + value: "false", + }, + { + type: "equals", + dimension: "sub_task_deleted_flag", + value: "false", + }, + { + type: "equals", + dimension: "task_deleted_flag", + value: "false", + }, + { + type: "equals", + dimension: "project_deleted_flag", + value: "false", + }, + { + type: "equals", + dimension: "program_id", + value: "$programId", + }, + { + type: "equals", + dimension: "solution_id", + value: "$solutionId", + }, + { + type: "equals", + dimension: "district_externalId", + value: "$district_externalId", + }, + { + type: "equals", + dimension: "organisation_id", + value: "$organisation_id", + }, + { + type: "greaterthan", + dimension: "task_count", + value: "$task_count", + }, + { + type: "greaterthan", + dimension: "task_evidence_count", + value: "$task_evidence_count", + }, + { + type: "greaterthan", + dimension: "project_evidence_count", + value: "$project_evidence_count", + }, + ], + uiFilters: [ + { + label: "Minimum no. of tasks in the project", + controlType: "number", + reference: "task_count", + defaultValue: 5, + }, + { + label: "Minimum no. of task evidence", + controlType: "number", + reference: "task_evidence_count", + defaultValue: 2, + }, + { + label: "Minimum no. of project evidence", + controlType: "number", + reference: "project_evidence_count", + defaultValue: 1, + }, + ], + }, + { + "name": "Status Report", + "encrypt": false, + "datasetId": "ml-project-status-exhaust", + "roles": [ + "PROGRAM_MANAGER", + "PROGRAM_DESIGNER" + ], + "configurableFilters": true, + "filters": [ + { + "type": "in", + "dimension": "status_of_project", + "values": "$status_of_project" + }, + { + "type": "equals", + "dimension": "private_program", + "value": "false" + }, + { + "type": "equals", + "dimension": "sub_task_deleted_flag", + "value": "false" + }, + { + "type": "equals", + "dimension": "task_deleted_flag", + "value": "false" + }, + { + "type": "equals", + "dimension": "project_deleted_flag", + "value": "false" + }, + { + "type": "equals", + "dimension": "program_id", + "value": "$programId" + }, + { + "type": "equals", + "dimension": "solution_id", + "value": "$solutionId" + }, + { + "type": "equals", + "dimension": "district_externalId", + "value": "$district_externalId" + }, + { + "type": "equals", + "dimension": "organisation_id", + "value": "$organisation_id" + } + ], + "uiFilters": [ + { + "label": "Status", + "controlType": "multi-select", + "reference": "status_of_project", + "placeholder": "Select status", + "options": [ + "started", + "submitted", + "inProgress" + ] + } + ] + } + ], multipleDataDownloaded: [ { loaded: true, diff --git a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.ts b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.ts index d1d9be9269..d4ace54188 100644 --- a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.ts +++ b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.spec.ts @@ -526,15 +526,46 @@ describe('DatasetsComponent', () => { it('should update the selected report data for Filtered task detail report ', () => { jest.spyOn(component,'reportChanged'); - component.reportChanged(mockData.selectedReportWithConfigurableFilters) - expect(component.selectedReport).toBe(mockData.selectedReportWithConfigurableFilters); + component.reportChanged(mockData.selectedReportWithConfigurableFilters[0]) + expect(component.selectedReport).toBe(mockData.selectedReportWithConfigurableFilters[0]); expect(component.reportChanged).toHaveBeenCalled(); }); + it('should update the selected report data for status report ', () => { + jest.spyOn(component,'reportChanged'); + component.reportChanged(mockData.selectedReportWithConfigurableFilters[1]) + expect(component.selectedReport).toBe(mockData.selectedReportWithConfigurableFilters[1]); + expect(component.reportChanged).toHaveBeenCalled(); + }); + + it('should call pdFilterChanged method for number type', () => { + jest.spyOn(component,'pdFilterChanged'); + component.pdFilterChanged({data:{task_count:5}, controlType:'number'}); + expect(component.pdFilterChanged).toHaveBeenCalledWith({data:{task_count:5}, controlType:'number'}); + }); + + it('should call pdFilterChanged method for number type with negative value', () => { + jest.spyOn(component,'pdFilterChanged'); + component.pdFilterChanged({data:{task_count:-1}, controlType:'number'}); + expect(component.pdFilterChanged).toHaveBeenCalledWith({data:{task_count:-1}, controlType:'number'}); + }); + + it('should call pdFilterChanged method for number type with zero value', () => { + jest.spyOn(component,'pdFilterChanged'); + component.pdFilterChanged({data:{task_count:0}, controlType:'number'}); + expect(component.pdFilterChanged).toHaveBeenCalledWith({data:{task_count:0}, controlType:'number'}); + }); + + it('should call pdFilterChanged method for number type with null value', () => { + jest.spyOn(component,'pdFilterChanged'); + component.pdFilterChanged({data:{task_count:null}, controlType:'number'}); + expect(component.pdFilterChanged).toHaveBeenCalledWith({data:{task_count:null}, controlType:'number'}); + }); + it('should call pdFilterChanged method', () => { jest.spyOn(component,'pdFilterChanged'); - component.pdFilterChanged({task_count:5}); - expect(component.pdFilterChanged).toHaveBeenCalledWith({task_count:5}); + component.pdFilterChanged({data:{status:['started']}, controlType:'multi-select'}); + expect(component.pdFilterChanged).toHaveBeenCalledWith({data:{status:['started']}, controlType:'multi-select'}); }); it('should request the csv', () => { diff --git a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.ts b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.ts index 5b58f5361a..8974e07be2 100644 --- a/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.ts +++ b/src/app/client/src/app/modules/program-dashboard/components/program-datasets/program-datasets.component.ts @@ -578,17 +578,18 @@ export class DatasetsComponent implements OnInit, OnDestroy { } pdFilterChanged($event){ - const [reference, value]= [Object.keys($event.data),Object.values($event.data)] ; - if($event.controlType === 'number'){ - if([0,null].includes(value[0] as number) || value[0] < 0){ - this.configuredFilters[reference[0]] = undefined; + if($event.data){ + const [reference, value]= [Object.keys($event.data),Object.values($event.data)] ; + if($event.controlType === 'number'){ + if([0,null].includes(value[0] as number) || value[0] < 0){ + this.configuredFilters[reference[0]] = undefined; + }else{ + this.configuredFilters[reference[0]] = value[0] as number -1; + } }else{ - this.configuredFilters[reference[0]] = value[0] as number -1; + this.configuredFilters[reference[0]] = value[0] } - }else{ - this.configuredFilters[reference[0]] = value[0] } - console.log('event',$event,'reference',reference,'value',value); } addFilters() { diff --git a/src/app/client/src/app/modules/program-dashboard/shared/pd-filters/pd-filters.component.ts b/src/app/client/src/app/modules/program-dashboard/shared/pd-filters/pd-filters.component.ts index 87967bb1d2..e765cc5467 100644 --- a/src/app/client/src/app/modules/program-dashboard/shared/pd-filters/pd-filters.component.ts +++ b/src/app/client/src/app/modules/program-dashboard/shared/pd-filters/pd-filters.component.ts @@ -27,12 +27,10 @@ export class PdFiltersComponent implements OnInit { } inputChange() { - console.log('Form value', this.pdFiltersFormGroup.value) const dataToBeEmitted = { data:this.pdFiltersFormGroup.value, controlType:this.pdFilter.controlType } - console.log('data to emit',dataToBeEmitted) this.filterChanged.emit(dataToBeEmitted); } } -- GitLab