diff --git a/CHANGELOG.md b/CHANGELOG.md
index 075f33d..34c0cde 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+
+# [2.1.0](https://github.com/faker-javascript/age) (2022-01-11)
+* Added xo, tsd, c8.
+* Improved tests.
+
# [2.0.0](https://github.com/faker-javascript/age) (2022-01-09)
diff --git a/index.d.ts b/index.d.ts
new file mode 100644
index 0000000..057fbb1
--- /dev/null
+++ b/index.d.ts
@@ -0,0 +1,4 @@
+interface Options {
+ type: string;
+}
+export default function age(options?: Options): number;
diff --git a/index.js b/index.js
index bccf470..ea25133 100644
--- a/index.js
+++ b/index.js
@@ -4,31 +4,32 @@ export default function age(options) {
let max = 100;
switch (options.type) {
case 'child':
- min = 0;
+ min = 0;
max = 12;
break;
case 'teen':
- min = 13;
+ min = 13;
max = 19;
break;
case 'adult':
- min = 18;
+ min = 18;
max = 65;
break;
case 'senior':
- min = 65;
+ min = 65;
max = 100;
break;
case 'all':
- min = 0;
+ min = 0;
max = 100;
break;
default:
- min = 0;
+ min = 0;
max = 100;
break;
}
+
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
-};
\ No newline at end of file
+}
diff --git a/index.test-d.ts b/index.test-d.ts
new file mode 100644
index 0000000..3782e36
--- /dev/null
+++ b/index.test-d.ts
@@ -0,0 +1,9 @@
+import {expectType} from 'tsd';
+import age from './index.js';
+
+expectType(age());
+expectType(age({type: 'child'}));
+expectType(age({type: 'teen'}));
+expectType(age({type: 'adult'}));
+expectType(age({type: 'senior'}));
+expectType(age({type: 'all'}));
diff --git a/package.json b/package.json
index 143d7d9..6155d03 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@fakerjs/age",
- "version": "2.0.0",
+ "version": "2.1.0",
"description": "Age package provides functionality to generate a fake age value.",
"license": "MIT",
"repository": "faker-javascript/age",
@@ -15,14 +15,17 @@
"node": ">=12"
},
"scripts": {
- "test": "c8 ava"
+ "test": "c8 ava; xo --space 4; tsd;"
},
"devDependencies": {
- "ava": "^3.15.0",
- "c8": "^7.11.0"
+ "ava": "^4.0.0",
+ "c8": "^7.11.0",
+ "tsd": "^0.19.1",
+ "xo": "^0.47.0"
},
"files": [
- "index.js"
+ "index.js",
+ "index.d.ts"
],
"keywords": [
"fakerjs",
diff --git a/test.js b/test.js
index 66890e1..a9e6968 100644
--- a/test.js
+++ b/test.js
@@ -1,31 +1,31 @@
-import age from './index.js';
import test from 'ava';
+import age from './index.js';
test('age return type to be number', t => {
- t.is(typeof age(), 'number');
+ t.is(typeof age(), 'number');
});
test('age with type child less than 13 and more than -1', t => {
- t.true(age({type: 'child'}) < 13);
- t.true(age({type: 'child'}) > -1);
+ t.true(age({type: 'child'}) < 13);
+ t.true(age({type: 'child'}) > -1);
});
test('age with type teen less than 20 and more than 12', t => {
- t.true(age({type: 'teen'}) < 20);
- t.true(age({type: 'teen'}) > 12);
+ t.true(age({type: 'teen'}) < 20);
+ t.true(age({type: 'teen'}) > 12);
});
test('age with type adult less than 69 and more than 17', t => {
- t.true(age({type: 'adult'}) < 69);
- t.true(age({type: 'adult'}) > 17);
+ t.true(age({type: 'adult'}) < 69);
+ t.true(age({type: 'adult'}) > 17);
});
test('age with type senior less than 101 and more than 64', t => {
- t.true(age({type: 'senior'}) < 101);
- t.true(age({type: 'senior'}) > 64);
+ t.true(age({type: 'senior'}) < 101);
+ t.true(age({type: 'senior'}) > 64);
});
test('age with type all less than 101 and more than -1', t => {
- t.true(age({type: 'all'}) < 101);
- t.true(age({type: 'all'}) > -1);
-});
\ No newline at end of file
+ t.true(age({type: 'all'}) < 101);
+ t.true(age({type: 'all'}) > -1);
+});