Skip to content

Commit 67a3d60

Browse files
authored
ENGCOM-6996: Fix #25243 #25359
2 parents 9f093a3 + ee53a9f commit 67a3d60

File tree

2 files changed

+113
-0
lines changed
  • app/code/Magento/Ui/view/frontend/web/js/model
  • dev/tests/js/jasmine/tests/app/code/Magento/Ui/frontend/js/model

2 files changed

+113
-0
lines changed

app/code/Magento/Ui/view/frontend/web/js/model/messages.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ define([
4848
message = messageObj.message.replace(expr, function (varName) {
4949
varName = varName.substr(1);
5050

51+
if (!isNaN(varName)) {
52+
varName--;
53+
}
54+
5155
if (messageObj.parameters.hasOwnProperty(varName)) {
5256
return messageObj.parameters[varName];
5357
}
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
/**
2+
* Copyright © Magento, Inc. All rights reserved.
3+
* See COPYING.txt for license details.
4+
*/
5+
6+
define([
7+
'uiRegistry',
8+
'Magento_Ui/js/model/messages'
9+
], function (registry, Constr) {
10+
'use strict';
11+
12+
describe('Magento_Ui/js/model/messages', function () {
13+
14+
var obj,
15+
errorMessageText,
16+
successMessageText,
17+
messageObj;
18+
19+
beforeEach(function () {
20+
obj = new Constr(
21+
{
22+
provider: 'provName',
23+
name: '',
24+
index: ''
25+
});
26+
errorMessageText = 'Error message test';
27+
successMessageText = 'Success message test';
28+
29+
registry.set('provName', {
30+
/** Stub */
31+
on: function () {
32+
},
33+
34+
/** Stub */
35+
get: function () {
36+
},
37+
38+
/** Stub */
39+
set: function () {
40+
}
41+
});
42+
});
43+
44+
it('adds massage without parameters', function () {
45+
var type = [];
46+
47+
messageObj = {
48+
message: 'Message test'
49+
};
50+
expect(obj.add(messageObj, type)).toEqual(true);
51+
expect(type).toEqual([messageObj.message]);
52+
});
53+
54+
it('add message with parameters', function () {
55+
var returnedObj,
56+
type = [];
57+
58+
messageObj = {
59+
message: 'Message test case %1, case %2 and case %3',
60+
parameters: [
61+
'one',
62+
'two',
63+
'three'
64+
]
65+
};
66+
returnedObj = ['Message test case ' + messageObj.parameters[0] + ', case ' +
67+
messageObj.parameters[1] + ' and case ' + messageObj.parameters[2]];
68+
69+
expect(obj.add(messageObj, type)).toEqual(true);
70+
expect(type).toEqual(returnedObj);
71+
});
72+
73+
it('add error message, get error message, verify has error message', function () {
74+
messageObj = {
75+
message: errorMessageText
76+
};
77+
78+
expect(obj.hasMessages()).toEqual(false);
79+
expect(obj.addErrorMessage(messageObj)).toEqual(true);
80+
expect(obj.getErrorMessages()()).toEqual([errorMessageText]);
81+
expect(obj.hasMessages()).toEqual(true);
82+
});
83+
84+
it('add success message, get success message, verify has success message', function () {
85+
messageObj = {
86+
message: successMessageText
87+
};
88+
89+
expect(obj.addSuccessMessage(messageObj)).toEqual(true);
90+
expect(obj.getSuccessMessages()()).toEqual([successMessageText]);
91+
expect(obj.hasMessages()).toEqual(true);
92+
});
93+
94+
it('cleaning messages', function () {
95+
messageObj = {
96+
message: 'Message test case %1, case %2 and case %3',
97+
parameters: [
98+
'one',
99+
'two',
100+
'three'
101+
]
102+
};
103+
expect(obj.addErrorMessage(messageObj)).toEqual(true);
104+
obj.clear();
105+
expect(obj.getErrorMessages()()).toEqual([]);
106+
expect(obj.hasMessages()).toEqual(false);
107+
});
108+
});
109+
});

0 commit comments

Comments
 (0)