Skip to content

Commit 4a5c348

Browse files
Merge pull request #366 from andrechristikan/development
Development
2 parents 114fcbf + 910d486 commit 4a5c348

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

src/common/helper/interfaces/helper.number-service.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ export interface IHelperNumberService {
66
random(length: number): number;
77

88
randomInRange(min: number, max: number): number;
9+
10+
percent(value: number, total: number): number;
911
}

src/common/helper/services/helper.number.service.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,12 @@ export class HelperNumberService implements IHelperNumberService {
2222
randomInRange(min: number, max: number): number {
2323
return faker.datatype.number({ min, max });
2424
}
25+
26+
percent(value: number, total: number): number {
27+
let tValue = value / total;
28+
if (Number.isNaN(tValue) || !Number.isFinite(tValue)) {
29+
tValue = 0;
30+
}
31+
return Number.parseFloat((tValue * 100).toFixed(2));
32+
}
2533
}

test/unit/helper/helper.number.service.spec.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,31 @@ describe('HelperNumberService', () => {
8383
expect(result).toBeTruthy();
8484
});
8585
});
86+
87+
describe('percent', () => {
88+
it('should be called', async () => {
89+
const test = jest.spyOn(helperNumberService, 'percent');
90+
91+
helperNumberService.percent(5, 8);
92+
expect(test).toHaveBeenCalledWith(5, 8);
93+
});
94+
95+
it('should be success with NaN or Infinite', async () => {
96+
const result = helperNumberService.percent(0, 0);
97+
jest.spyOn(helperNumberService, 'percent').mockImplementation(
98+
() => result
99+
);
100+
101+
expect(helperNumberService.percent(5, 8)).toBe(result);
102+
});
103+
104+
it('should be success', async () => {
105+
const result = helperNumberService.percent(5, 8);
106+
jest.spyOn(helperNumberService, 'percent').mockImplementation(
107+
() => result
108+
);
109+
110+
expect(helperNumberService.percent(5, 8)).toBe(result);
111+
});
112+
});
86113
});

0 commit comments

Comments
 (0)