Skip to content
This repository has been archived by the owner on Nov 29, 2020. It is now read-only.

Commit

Permalink
fix: fixed a bug with resolveMinMax not being translated
Browse files Browse the repository at this point in the history
  • Loading branch information
favna committed Oct 30, 2020
1 parent d8679a8 commit 46165f8
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 12 deletions.
13 changes: 9 additions & 4 deletions src/lib/structures/Serializer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,19 @@ export abstract class Serializer extends AliasPiece {
protected static minOrMax(value: number, { minimum, maximum, inclusive, key }: SchemaEntry, language: Language): boolean {
if (minimum && maximum) {
if ((value >= minimum && value <= maximum && inclusive) || (value > minimum && value < maximum && !inclusive)) return true;
if (minimum === maximum) throw new RangeError(language.get('resolverMinmaxExactly', { key, min: minimum, inclusive }));
throw new RangeError(language.get('resolverMinmaxBoth', { key, min: minimum, max: maximum, inclusive }));
if (minimum === maximum)
throw new RangeError(
language.get(inclusive ? 'resolverMinmaxExactlyInclusive' : 'resolverMinmaxExactlyExclusive', { name: key, min: minimum })
);
throw new RangeError(
language.get(inclusive ? 'resolverMinmaxBothInclusive' : 'resolverMinmaxBothExclusive', { name: key, min: minimum, max: maximum })
);
} else if (minimum) {
if ((value >= minimum && inclusive) || (value > minimum && !inclusive)) return true;
throw new RangeError(language.get('resolverMinmaxMin', { key, min: minimum, inclusive }));
throw new RangeError(language.get(inclusive ? 'resolverMinmaxMinInclusive' : 'resolverMinmaxMinExclusive', { name: key, min: minimum }));
} else if (maximum) {
if ((value <= maximum && inclusive) || (value < maximum && !inclusive)) return true;
throw new RangeError(language.get('resolverMinmaxMax', { key, max: maximum, inclusive }));
throw new RangeError(language.get(inclusive ? 'resolverMinmaxMaxInclusive' : 'resolverMinmaxMaxExclusive', { name: key, max: maximum }));
}
return true;
}
Expand Down
24 changes: 16 additions & 8 deletions tests/lib/MockLanguage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,22 @@ export class MockLanguage extends Language {
`[settingGatewayDuplicateValue]: ${path} ${value}`,
settingGatewayInvalidFilteredValue: ({ path, value }: { path: string; value: string }): string =>
`[settingGatewayInvalidFilteredValue]: ${path} ${value}`,
resolverMinmaxExactly: ({ key, min, inclusive }: { key: string; min: number; inclusive: boolean }): string =>
`[resolverMinmaxExactly]: ${key} ${min} ${inclusive}`,
resolverMinmaxBoth: ({ key, min, max, inclusive }: { key: string; min: number; max: number; inclusive: boolean }): string =>
`[resolverMinmaxBoth]: ${key} ${min} ${max} ${inclusive}`,
resolverMinmaxMin: ({ key, min, inclusive }: { key: string; min: number; inclusive: number }): string =>
`[resolverMinmaxMin]: ${key} ${min} ${inclusive}`,
resolverMinmaxMax: ({ key, max, inclusive }: { key: string; max: number; inclusive: number }): string =>
`[resolverMinmaxMax]: ${key} ${max} ${inclusive}`
resolverMinmaxExactlyInclusive: ({ key, min }: { key: string; min: number; inclusive: boolean }): string =>
`[resolverMinmaxExactly]: ${key} ${min}`,
resolverMinmaxExactlyExclusive: ({ key, min }: { key: string; min: number; inclusive: boolean }): string =>
`[resolverMinmaxExactly]: ${key} ${min}`,
resolverMinmaxBothInclusive: ({ key, min, max }: { key: string; min: number; max: number; inclusive: boolean }): string =>
`[resolverMinmaxBoth]: ${key} ${min} ${max}`,
resolverMinmaxBothExclusive: ({ key, min, max }: { key: string; min: number; max: number; inclusive: boolean }): string =>
`[resolverMinmaxBoth]: ${key} ${min} ${max}`,
resolverMinmaxMinInclusive: ({ key, min }: { key: string; min: number; inclusive: number }): string =>
`[resolverMinmaxMin]: ${key} ${min}`,
resolverMinmaxMinExclusive: ({ key, min }: { key: string; min: number; inclusive: number }): string =>
`[resolverMinmaxMin]: ${key} ${min}`,
resolverMinmaxMaxInclusive: ({ key, max }: { key: string; max: number; inclusive: number }): string =>
`[resolverMinmaxMax]: ${key} ${max}`,
resolverMinmaxMaxExclusive: ({ key, max }: { key: string; max: number; inclusive: number }): string =>
`[resolverMinmaxMax]: ${key} ${max}`
};
}
}

0 comments on commit 46165f8

Please sign in to comment.