Skip to content
This repository was archived by the owner on Oct 20, 2021. It is now read-only.

Commit f0b712e

Browse files
feat(rules): Rename Range rule to Between
1 parent 4fbef07 commit f0b712e

9 files changed

Lines changed: 107 additions & 107 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ The library can be loaded either as a standalone script, or through an [AMD](htt
8585
- [ArrayInstance](docs/array-instance.md)
8686
- [ArrayType](docs/array-type.md)
8787
- [ArrayVal](docs/array-val.md)
88+
- [Between](docs/between.md)
8889
- [BooleanInstance](docs/boolean-instance.md)
8990
- [BooleanType](docs/boolean-type.md)
9091
- [BooleanVal](docs/boolean-val.md)
@@ -167,7 +168,6 @@ The library can be loaded either as a standalone script, or through an [AMD](htt
167168
- [Prnt](docs/prnt.md)
168169
- [PropertyKey](docs/property-key.md)
169170
- [Punct](docs/punct.md)
170-
- [Range](docs/range.md)
171171
- [Readable](docs/readable.md)
172172
- [RegexInstance](docs/regex-instance.md)
173173
- [RegexType](docs/regex-type.md)

docs/between.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Between
2+
3+
Validates lengths.
4+
5+
Valid values:
6+
7+
```js
8+
validator.between(1).validate('foo'));
9+
validator.between(100).validate(100));
10+
validator.between(100, 200, false).validate(150));
11+
validator.between(1).validate({foo: 'bar'}));
12+
validator.between(1).validate([1]));
13+
```
14+
15+
Invalid values:
16+
17+
```js
18+
validator.between(5).validate('foo'));
19+
validator.between(3, 5, false).validate('foo'));
20+
validator.between(100).validate(50));
21+
validator.between(100, 200, false).validate(100));
22+
validator.between(2).validate({foo: 'bar'}));
23+
validator.between(2).validate([1]));
24+
```

docs/range.md

Lines changed: 0 additions & 24 deletions
This file was deleted.

src/rules/age.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as moment from 'moment';
22

33
import { AbstractRule } from './abstract-rule';
4+
import { Between } from './between';
45
import { DateTime } from './date-time';
5-
import { Range } from './range';
66

77
export class Age extends AbstractRule {
88

@@ -23,7 +23,7 @@ export class Age extends AbstractRule {
2323
public validate(input: any): boolean {
2424
const date: moment.Moment = DateTime.parse(input, this.format);
2525

26-
return date.isValid() && new Range(
26+
return date.isValid() && new Between(
2727
this.max ? moment().subtract(this.max, 'years').hour(0).minute(0).second(0) : null,
2828
this.min ? moment().subtract(this.min, 'years').hour(23).minute(59).second(59) : null
2929
).validate(date);
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import { AllOf } from './all-of';
33
import { Max } from './max';
44
import { Min } from './min';
55

6-
export class Range extends AbstractRule {
6+
export class Between extends AbstractRule {
77

88
/**
9-
* RanRangee.
9+
* Between.
1010
*/
1111
public constructor(
1212
public readonly min?: any,

src/rules/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export * from './any-of';
66
export * from './array-instance';
77
export * from './array-type';
88
export * from './array-val';
9+
export * from './between';
910
export * from './boolean-instance';
1011
export * from './boolean-type';
1112
export * from './boolean-val';
@@ -88,7 +89,6 @@ export * from './prime-number';
8889
export * from './prnt';
8990
export * from './property-key';
9091
export * from './punct';
91-
export * from './range';
9292
export * from './readable';
9393
export * from './regex-instance';
9494
export * from './regex-type';

src/rules/size.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import { Between } from './between';
12
import { File } from './file';
2-
import { Range } from './range';
33

4-
export class Size extends Range {
4+
export class Size extends Between {
55

66
/**
77
* Validate.

test/rules/between.ts

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { assert } from 'chai';
2+
3+
import { AbstractRule } from '../../src/rules/abstract-rule';
4+
import { Between } from '../../src/rules/between';
5+
6+
describe('Between', () => {
7+
8+
it('is rule', () => {
9+
assert.instanceOf(new Between(), AbstractRule);
10+
});
11+
12+
it('values is valid', () => {
13+
assert.isTrue(new Between(1).validate('foo'));
14+
assert.isTrue(new Between(null, 5).validate('foo'));
15+
assert.isTrue(new Between(1, 5).validate('foo'));
16+
assert.isTrue(new Between(1, 5, false).validate('foo'));
17+
assert.isTrue(new Between().validate(0));
18+
assert.isTrue(new Between(100).validate(100));
19+
assert.isTrue(new Between(100, 200).validate(100));
20+
assert.isTrue(new Between(null, 200).validate(150));
21+
assert.isTrue(new Between(100, 200, false).validate(150));
22+
assert.isTrue(new Between(1).validate({foo: 'bar'}));
23+
assert.isTrue(new Between(1, 5).validate({foo: 'bar'}));
24+
assert.isTrue(new Between(1, 5, false).validate({foo: 'bar', bar: 'foo'}));
25+
assert.isTrue(new Between(0, 5).validate({}));
26+
assert.isTrue(new Between(1).validate([1]));
27+
assert.isTrue(new Between(1, 5).validate([1]));
28+
assert.isTrue(new Between(1, 5, false).validate([1, 2]));
29+
assert.isTrue(new Between(0, 5).validate([]));
30+
assert.isTrue(new Between(1).validate(new Set([1, 2, 3])));
31+
assert.isTrue(new Between(null, 5).validate(new Set([1, 2, 3])));
32+
assert.isTrue(new Between(1, 5).validate(new Set([1, 2, 3])));
33+
assert.isTrue(new Between(1, 5, false).validate(new Set([1, 2, 3])));
34+
assert.isTrue(new Between(1).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
35+
assert.isTrue(new Between(null, 5).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
36+
assert.isTrue(new Between(1, 5).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
37+
assert.isTrue(new Between(1, 5, false).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
38+
assert.isTrue(new Between('5mb', '20mb').validate('10mb'));
39+
assert.isTrue(new Between('5mb').validate('10mb'));
40+
assert.isTrue(new Between(null, '20mb').validate('10mb'));
41+
assert.isTrue(new Between('a', 'c').validate('b'));
42+
});
43+
44+
it('values is not valid', () => {
45+
assert.isFalse(new Between(5).validate('foo'));
46+
assert.isFalse(new Between(null, 5).validate('foobar'));
47+
assert.isFalse(new Between(5, 10).validate('foo'));
48+
assert.isFalse(new Between(3, 5, false).validate('foo'));
49+
assert.isFalse(new Between(100).validate(50));
50+
assert.isFalse(new Between(100, 200).validate(50));
51+
assert.isFalse(new Between(100, 200, false).validate(100));
52+
assert.isFalse(new Between(null, 200).validate(250));
53+
assert.isFalse(new Between(2).validate({foo: 'bar'}));
54+
assert.isFalse(new Between(2, 5).validate({foo: 'bar'}));
55+
assert.isFalse(new Between(2, 5, false).validate({foo: 'bar', bar: 'foo'}));
56+
assert.isFalse(new Between(0, 5, false).validate({}));
57+
assert.isFalse(new Between(2).validate([1]));
58+
assert.isFalse(new Between(2, 5).validate([1]));
59+
assert.isFalse(new Between(2, 5, false).validate([1, 2]));
60+
assert.isFalse(new Between(0, 5, false).validate([]));
61+
assert.isFalse(new Between(5).validate(new Set([1, 2, 3])));
62+
assert.isFalse(new Between(null, 2).validate(new Set([1, 2, 3])));
63+
assert.isFalse(new Between(5, 10).validate(new Set([1, 2, 3])));
64+
assert.isFalse(new Between(3, 5, false).validate(new Set([1, 2, 3])));
65+
assert.isFalse(new Between(5).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
66+
assert.isFalse(new Between(null, 2).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
67+
assert.isFalse(new Between(5, 10).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
68+
assert.isFalse(new Between(3, 5, false).validate(new Map<number, number>([[1, 1], [2, 2], [3, 3]])));
69+
assert.isFalse(new Between('5mb', '20mb').validate('30mb'));
70+
assert.isFalse(new Between('5mb').validate('3mb'));
71+
assert.isFalse(new Between(null, '20mb').validate('30mb'));
72+
assert.isFalse(new Between('a', 'c').validate('d'));
73+
});
74+
75+
});

test/rules/range.ts

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)