aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorc0per <[email protected]>2022-05-04 17:30:58 +0800
committerGitHub <[email protected]>2022-05-04 11:30:58 +0200
commit100a1ea230cba422174a6b5103c56bc4cf9c0dc4 (patch)
tree914de99f5f9a68eb0f9b081283c9c57ec6259154
parent788af82d574b5f929f805ef6305e5953981c79f2 (diff)
downloadfaker-100a1ea230cba422174a6b5103c56bc4cf9c0dc4.tar.xz
faker-100a1ea230cba422174a6b5103c56bc4cf9c0dc4.zip
fix: empty array passed into helpers.arrayElements (#921)
-rw-r--r--src/modules/helpers/index.ts5
-rw-r--r--test/helpers.spec.ts12
2 files changed, 16 insertions, 1 deletions
diff --git a/src/modules/helpers/index.ts b/src/modules/helpers/index.ts
index 1b28ddfa..7f056b9f 100644
--- a/src/modules/helpers/index.ts
+++ b/src/modules/helpers/index.ts
@@ -783,7 +783,10 @@ export class Helpers {
count?: number
): T[] {
if (typeof count !== 'number') {
- count = this.faker.datatype.number({ min: 1, max: array.length });
+ count =
+ array.length === 0
+ ? 0
+ : this.faker.datatype.number({ min: 1, max: array.length });
} else if (count > array.length) {
count = array.length;
} else if (count < 0) {
diff --git a/test/helpers.spec.ts b/test/helpers.spec.ts
index e436e6dc..819f08a3 100644
--- a/test/helpers.spec.ts
+++ b/test/helpers.spec.ts
@@ -543,6 +543,18 @@ describe('helpers', () => {
// Check uniqueness
expect(subset).toHaveLength(new Set(subset).size);
});
+
+ it('should return an empty array when receiving an empty array', () => {
+ const result = faker.helpers.arrayElements([]);
+
+ expect(result).toHaveLength(0);
+ });
+
+ it('should return an empty array when receiving an empty array and count > 0', () => {
+ const result = faker.helpers.arrayElements([], 3);
+
+ expect(result).toHaveLength(0);
+ });
});
describe('randomize()', () => {