Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: add missing throw descriptions in JSDocs #2560

Merged
merged 4 commits into from
Dec 4, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion src/modules/datatype/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ export class DatatypeModule extends SimpleModuleBase {
* @param options.max Upper bound for generated number. Defaults to `min + 99999`.
* @param options.precision Precision of the generated number. Defaults to `1`.
*
* @throws When options define `max < min`.
* @throws When `min` is greater than `max`.
* @throws When `precision` is negative.
*
* @see faker.number.int(): For generating a random integer.
* @see faker.number.float(): For generating a random floating-point number.
Expand Down Expand Up @@ -85,6 +86,9 @@ export class DatatypeModule extends SimpleModuleBase {
* @param options.max Upper bound for generated number. Defaults to `min + 99999`.
* @param options.precision Precision of the generated number. Defaults to `0.01`.
*
* @throws When `min` is greater than `max`.
* @throws When `precision` is negative.
*
* @see faker.number.float(): For the replacement method.
*
* @example
Expand Down
17 changes: 12 additions & 5 deletions src/modules/number/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ export class NumberModule extends SimpleModuleBase {
* @param options.min Lower bound for generated number. Defaults to `0`.
* @param options.max Upper bound for generated number. Defaults to `Number.MAX_SAFE_INTEGER`.
*
* @throws When options define `max < min`.
* @throws When `min` is greater than `max`.
* @throws When `min` and `max` do not provide a sufficient range to generate integers in between them.
xDivisionByZerox marked this conversation as resolved.
Show resolved Hide resolved
*
* @see faker.string.numeric(): For generating a `string` of digits with a given length (range).
*
Expand Down Expand Up @@ -93,6 +94,9 @@ export class NumberModule extends SimpleModuleBase {
* @param options.precision Precision of the generated number, for example `0.01` will round to 2 decimal points.
* If precision is passed, the upper bound is inclusive.
*
* @throws When `min` is greater than `max`.
* @throws When `precision` is negative.
*
* @example
* faker.number.float() // 0.5688541042618454
* faker.number.float(3) // 2.367973240558058
Expand Down Expand Up @@ -168,7 +172,8 @@ export class NumberModule extends SimpleModuleBase {
* @param options.min Lower bound for generated number. Defaults to `0`.
* @param options.max Upper bound for generated number. Defaults to `1`.
*
* @throws When options define `max < min`.
* @throws When `min` is greater than `max`.
* @throws When `min` and `max` do not provide a sufficient range to generate integers in between them.
xDivisionByZerox marked this conversation as resolved.
Show resolved Hide resolved
*
* @see faker.string.binary(): For generating a `binary string` with a given length (range).
*
Expand Down Expand Up @@ -217,7 +222,8 @@ export class NumberModule extends SimpleModuleBase {
* @param options.min Lower bound for generated number. Defaults to `0`.
* @param options.max Upper bound for generated number. Defaults to `7`.
*
* @throws When options define `max < min`.
* @throws When `min` is greater than `max`.
* @throws When `min` and `max` do not provide a sufficient range to generate integers in between them.
xDivisionByZerox marked this conversation as resolved.
Show resolved Hide resolved
*
* @see faker.string.octal(): For generating an `octal string` with a given length (range).
*
Expand Down Expand Up @@ -266,7 +272,8 @@ export class NumberModule extends SimpleModuleBase {
* @param options.min Lower bound for generated number. Defaults to `0`.
* @param options.max Upper bound for generated number. Defaults to `15`.
*
* @throws When options define `max < min`.
* @throws When `min` is greater than `max`.
* @throws When `min` and `max` do not provide a sufficient range to generate integers in between them.
xDivisionByZerox marked this conversation as resolved.
Show resolved Hide resolved
*
* @example
* faker.number.hex() // 'b'
Expand Down Expand Up @@ -313,7 +320,7 @@ export class NumberModule extends SimpleModuleBase {
* @param options.min Lower bound for generated bigint. Defaults to `0n`.
* @param options.max Upper bound for generated bigint. Defaults to `min + 999999999999999n`.
*
* @throws When options define `max < min`.
* @throws When `min` is greater to `max`.
xDivisionByZerox marked this conversation as resolved.
Show resolved Hide resolved
*
* @example
* faker.number.bigInt() // 55422n
Expand Down
23 changes: 23 additions & 0 deletions test/modules/datatype.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,12 @@ describe('datatype', () => {
new FakerError(`Max ${max} should be greater than min ${min}.`)
);
});

it('should throw when precision is negative', () => {
expect(() => {
faker.datatype.number({ precision: -0.01 });
}).toThrow(new FakerError('Precision should be greater than 0.'));
});
});

describe('float', () => {
Expand Down Expand Up @@ -306,6 +312,23 @@ describe('datatype', () => {
expect(opts.min).toBe(min);
expect(opts.max).toBe(max);
});

it('should throw when min > max', () => {
const min = 10;
const max = 9;

expect(() => {
faker.datatype.number({ min, max });
}).toThrow(
new FakerError(`Max ${max} should be greater than min ${min}.`)
);
});

it('should throw when precision is negative', () => {
expect(() => {
faker.datatype.float({ precision: -0.01 });
}).toThrow(new FakerError('Precision should be greater than 0.'));
});
});

describe('datetime', () => {
Expand Down
26 changes: 25 additions & 1 deletion test/modules/number.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ describe('number', () => {
return [...str].every((char) => char === '0' || char === '1');
}

it('enerates single binary character when no additional argument was provided', () => {
it('generates single binary character when no additional argument was provided', () => {
const binary = faker.number.binary();

expect(binary).toBeTypeOf('string');
Expand Down Expand Up @@ -344,6 +344,14 @@ describe('number', () => {
new FakerError(`Max ${max} should be greater than min ${min}.`)
);
});

it('should throw when there is no integer between min and max', () => {
expect(() => {
faker.number.binary({ min: 2.1, max: 2.9 });
}).toThrow(
new FakerError(`No integer value between 2.1 and 2.9 found.`)
);
});
});

describe('octal', () => {
Expand Down Expand Up @@ -387,6 +395,14 @@ describe('number', () => {
new FakerError(`Max ${max} should be greater than min ${min}.`)
);
});

it('should throw when there is no integer between min and max', () => {
expect(() => {
faker.number.octal({ min: 2.1, max: 2.9 });
}).toThrow(
new FakerError(`No integer value between 2.1 and 2.9 found.`)
);
});
});

describe('hex', () => {
Expand Down Expand Up @@ -427,6 +443,14 @@ describe('number', () => {
new FakerError(`Max ${max} should be greater than min ${min}.`)
);
});

it('should throw when there is no integer between min and max', () => {
expect(() => {
faker.number.hex({ min: 2.1, max: 2.9 });
}).toThrow(
new FakerError(`No integer value between 2.1 and 2.9 found.`)
);
});
});

describe('bigInt', () => {
Expand Down