-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathalrada.test.js
More file actions
236 lines (186 loc) · 6.7 KB
/
alrada.test.js
File metadata and controls
236 lines (186 loc) · 6.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
// The function successfully replaces all instances of "(plus)" with "+" in the query string.
function test_replaces_plus_in_query_string() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const expected = "(al)Uhai 600ml @400+1";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function throws an error if the "settingsObj.settings.alradaitemnames" property is undefined.
function test_throws_error_if_settingsObj_settings_alradaitemnames_undefined() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const appState = "";
const exactdtail = "";
// Act and Assert
assert.throws(() => {
GetProductDetails(query, appState, exactdtail);
}, Error);
}
// The function removes any trailing commas from the query string.
function test_removes_trailing_commas_from_query_string() {
// Arrange
const query = "(al)Uhai 600ml @400+1,";
const expected = "(al)Uhai 600ml @400+1";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function removes all instances of "||" from the query string.
function test_removes_double_pipe_from_query_string() {
// Arrange
const query = "(al)Uhai 600ml @400+1||";
const expected = "(al)Uhai 600ml @400+1";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function trims any leading or trailing commas from the query string.
function test_trims_leading_and_trailing_commas_from_query_string() {
// Arrange
const query = ",(al)Uhai 600ml @400+1,";
const expected = "(al)Uhai 600ml @400+1";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function sets the default value of the "returntype" variable to "single" if it is not provided.
function test_sets_default_returntype() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const expected = JSON.stringify({ json_response: [], finalTextResponseMsg: "", finalResponseMsg: "<li class=\"total\">TOTAL: 0 TZS </li>\n", finalResponseTotal: 0, finalQuery: "" });
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function successfully parses the JSON string stored in "settingsObj.settings.alradaitemnames".
function test_parses_json_string() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const expected = JSON.stringify({ json_response: [], finalTextResponseMsg: "", finalResponseMsg: "<li class=\"total\">TOTAL: 0 TZS </li>\n", finalResponseTotal: 0, finalQuery: "" });
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function extracts the header row and body data from the parsed JSON.
function test_extracts_header_and_body_data() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const expected = JSON.stringify({ json_response: [], finalTextResponseMsg: "", finalResponseMsg: "<li class=\"total\">TOTAL: 0 TZS </li>\n", finalResponseTotal: 0, finalQuery: "" });
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function creates an array of data objects by combining the header row and body data.
function test_creates_array_of_data_objects() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const appState = "";
const exactdtail = "";
// Act
const result = GetProductDetails(query, appState, exactdtail);
// Assert
assert.isArray(result.json_response);
assert.isNotEmpty(result.json_response);
}
// The function converts the array of data objects into a JSON string.
function test_converts_array_to_json_string() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const appState = "";
const exactdtail = "";
// Act
const result = GetProductDetails(query, appState, exactdtail);
// Assert
assert.isString(result);
assert.isTrue(result.startsWith("{"));
assert.isTrue(result.endsWith("}"));
}
// The function replaces line breaks and "TZS" with "<br>" in the JSON string.
function test_replaces_line_breaks_and_tzs() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const appState = "";
const exactdtail = "";
// Act
const result = GetProductDetails(query, appState, exactdtail);
// Assert
assert.isString(result);
assert.notInclude(result, "\n");
assert.include(result, "<br>");
assert.notInclude(result, "TZS");
}
// The function converts the query parameter to a string if it is not already a string.
function test_converts_query_to_string() {
// Arrange
const query = ["(al)Uhai 600ml @400+1", "(al)Uhai 500ml @300+1"];
const expected = "(al)Uhai 600ml @400+1,(al)Uhai 500ml @300+1";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function splits the query string by commas and filters out any empty elements.
function test_splits_query_by_commas_and_filters_empty_elements() {
// Arrange
const query = "(al)Uhai 600ml @400+1,,(al)Uhai 500ml @300+1,";
const expected = ["(al)Uhai 600ml @400+1", "(al)Uhai 500ml @300+1"];
// Act
const result = GetProductDetails(query);
// Assert
assert.deepEqual(result, expected);
}
// The function calculates the number of items in the query string.
function test_calculates_number_of_items_in_query() {
// Arrange
const query = "(al)Uhai 600ml @400+1,(al)Uhai 500ml @300+1";
const expected = 2;
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function successfully replaces all instances of "(plus)" with "+" in the query string.
function test_replaces_plus_in_query_string() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const expected = "(al)Uhai 600ml @400+1";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function handles cases where the query parameter is not a string.
function test_handles_non_string_query_parameter() {
// Arrange
const query = 123;
const expected = "123";
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}
// The function initializes variables for the response, item count, total price, projected profit total, remaining quantity, multiplier, raw product name, and projected profit.
function test_initializes_variables() {
// Arrange
const query = "(al)Uhai 600ml @400+1";
const expected = JSON.stringify({
json_response: [],
finalTextResponseMsg: "",
finalResponseMsg: "<li class=\"total\">TOTAL: 0 TZS </li>\n",
finalResponseTotal: 0,
finalQuery: ""
});
// Act
const result = GetProductDetails(query);
// Assert
assert.equal(result, expected);
}