Skip to content

Commit 4659fdf

Browse files
committed
fix messages overwrite issue when multiple validator has been created with different custom messages.
1 parent ce86da5 commit 4659fdf

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

lib/validator.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function escapeEvalString(str) {
5757
*/
5858
function Validator(opts) {
5959
this.opts = {
60-
messages: defaultMessages
60+
messages: deepExtend({}, defaultMessages)
6161
};
6262

6363
if (opts)

test/validator.spec.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,28 @@ describe("Test constructor", () => {
2727
expect(v.messages.numberMax).toBe("The '{field}' field must be less than or equal to {expected}!");
2828
});
2929

30+
it("should create multi instance with custom messages", () => {
31+
let v1 = new Validator({
32+
messages: {
33+
numberMin: "Custom validation error message"
34+
}
35+
});
36+
let v2 = new Validator({
37+
messages: {
38+
numberMin: "Egyedi hibaüzenet"
39+
}
40+
});
41+
expect(v1).toBeDefined();
42+
expect(v1.messages).toBeDefined();
43+
expect(v1.messages.numberMin).toBe("Custom validation error message");
44+
expect(v1.messages.numberMax).toBe("The '{field}' field must be less than or equal to {expected}!");
45+
46+
expect(v2).toBeDefined();
47+
expect(v2.messages).toBeDefined();
48+
expect(v2.messages.numberMin).toBe("Egyedi hibaüzenet");
49+
expect(v2.messages.numberMax).toBe("The '{field}' field must be less than or equal to {expected}!");
50+
});
51+
3052
});
3153

3254
describe("Test validate", () => {

0 commit comments

Comments
 (0)