diff --git a/app/assets/javascripts/lib/utils/number_utils.js b/app/assets/javascripts/lib/utils/number_utils.js index 2ccc51c35f781a2fb335f0795711748302284720..19c4de6083de3bbb15901a1ad968c6723541f310 100644 --- a/app/assets/javascripts/lib/utils/number_utils.js +++ b/app/assets/javascripts/lib/utils/number_utils.js @@ -80,3 +80,22 @@ export function numberToHumanSize(size) { } return `${bytesToGiB(size).toFixed(2)} GiB`; } + +/** + * A simple method that returns the value of a + b + * It seems unessesary, but when combined with a reducer it + * adds up all the values in an array. + * + * e.g. `[1, 2, 3, 4, 5].reduce(sum) // => 15` + * + * @param {Float} a + * @param {Float} b + * @example + * // return 15 + * [1, 2, 3, 4, 5].reduce(sum); + * + * // returns 6 + * Object.values([{a: 1, b: 2, c: 3].reduce(sum); + * @returns {Float} The summed value + */ +export const sum = (a = 0, b = 0) => a + b; diff --git a/changelogs/unreleased/10097-number-utils.yml b/changelogs/unreleased/10097-number-utils.yml new file mode 100644 index 0000000000000000000000000000000000000000..417008f65395769ac760789ebb7577d35dec08ec --- /dev/null +++ b/changelogs/unreleased/10097-number-utils.yml @@ -0,0 +1,5 @@ +--- +title: Moves EE util into the CE file +merge_request: 25680 +author: +type: other diff --git a/spec/javascripts/lib/utils/number_utility_spec.js b/spec/javascripts/lib/utils/number_utility_spec.js index 94c6214c86a927f9d73304087427a29694bd8f23..818404bad81402c73d80054e2142610cb9bbd459 100644 --- a/spec/javascripts/lib/utils/number_utility_spec.js +++ b/spec/javascripts/lib/utils/number_utility_spec.js @@ -4,6 +4,7 @@ import { bytesToMiB, bytesToGiB, numberToHumanSize, + sum, } from '~/lib/utils/number_utils'; describe('Number Utils', () => { @@ -87,4 +88,14 @@ describe('Number Utils', () => { expect(numberToHumanSize(10737418240)).toEqual('10.00 GiB'); }); }); + + describe('sum', () => { + it('should add up two values', () => { + expect(sum(1, 2)).toEqual(3); + }); + + it('should add up all the values in an array when passed to a reducer', () => { + expect([1, 2, 3, 4, 5].reduce(sum)).toEqual(15); + }); + }); });