Skip to content

Commit 036bc01

Browse files
Merge pull request #21 from abhinavminhas/dev
Additional Test
2 parents ef4d6e6 + e0034af commit 036bc01

File tree

1 file changed

+56
-16
lines changed

1 file changed

+56
-16
lines changed

tests/test.js

Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
const assert = require('assert');
22
const parser = require('../parser.js');
3+
const fs = require('fs');
4+
const xml2js = require('xml2js');
35

46
(async () => {
5-
console.log('TEST 1 - Parse MSTest (TestResults-DifferentTestOutcomes.trx) results file with different test outcomes (using path with filename).');
7+
console.log('🧪🔹 [ TEST 1 - Parse MSTest (TestResults-DifferentTestOutcomes.trx) results file with different test outcomes (using path with filename). ] 🔹🧪');
68
let result = await parser.parse('./tests/sample-mstest-results/TestResults-DifferentTestOutcomes.trx', null);
79
let resultString = JSON.stringify(result, null, 4);
810
//console.log(resultString);
@@ -17,7 +19,7 @@ const parser = require('../parser.js');
1719
})();
1820

1921
(async () => {
20-
console.log('TEST 2 - Parse MSTest (TestResults-AllPassedOutcomes.trx) results file with all passed test outcomes (using path with filename).');
22+
console.log('🧪🔹 [ TEST 2 - Parse MSTest (TestResults-AllPassedOutcomes.trx) results file with all passed test outcomes (using path with filename). ] 🔹🧪');
2123
let result = await parser.parse('./tests/sample-mstest-results/TestResults-AllPassedOutcomes.trx', null);
2224
let resultString = JSON.stringify(result, null, 4);
2325
//console.log(resultString);
@@ -33,7 +35,7 @@ const parser = require('../parser.js');
3335
})();
3436

3537
(async () => {
36-
console.log('TEST 3 - Parse MSTest (TestResults-AllFailedOutcomes.trx) results file with all failed test outcomes (using path with filename).');
38+
console.log('🧪🔹 [ TEST 3 - Parse MSTest (TestResults-AllFailedOutcomes.trx) results file with all failed test outcomes (using path with filename). ] 🔹🧪');
3739
let result = await parser.parse('./tests/sample-mstest-results/TestResults-AllFailedOutcomes.trx', null);
3840
let resultString = JSON.stringify(result, null, 4);
3941
//console.log(resultString);
@@ -49,7 +51,7 @@ const parser = require('../parser.js');
4951
})();
5052

5153
(async () => {
52-
console.log('TEST 4 - Parse MSTest (TestResults-WithAttachments.trx) results file with attachment details (using path with filename).');
54+
console.log('🧪🔹 [ TEST 4 - Parse MSTest (TestResults-WithAttachments.trx) results file with attachment details (using path with filename). ] 🔹🧪');
5355
let result = await parser.parse('./tests/sample-mstest-results/TestResults-WithAttachments.trx', null);
5456
let resultString = JSON.stringify(result, null, 4);
5557
//console.log(resultString);
@@ -63,7 +65,7 @@ const parser = require('../parser.js');
6365
})();
6466

6567
(async () => {
66-
console.log('TEST 5 - Parse all MSTest (.trx) result files (using path to result files - path ending /).');
68+
console.log('🧪🔹 [ TEST 5 - Parse all MSTest (.trx) result files (using path to result files - path ending /). ] 🔹🧪');
6769
let result = await parser.parse('./tests/sample-mstest-results/', null);
6870
let resultString = JSON.stringify(result, null, 4);
6971
//console.log(resultString);
@@ -76,7 +78,7 @@ const parser = require('../parser.js');
7678
})();
7779

7880
(async () => {
79-
console.log('TEST 6 - Parse all MSTest (.trx) result files (using path to result files - path not ending /).');
81+
console.log('🧪🔹 [ TEST 6 - Parse all MSTest (.trx) result files (using path to result files - path not ending /). ] 🔹🧪');
8082
let result = await parser.parse('./tests/sample-mstest-results', null);
8183
let resultString = JSON.stringify(result, null, 4);
8284
//console.log(resultString);
@@ -89,7 +91,7 @@ const parser = require('../parser.js');
8991
})();
9092

9193
(async () => {
92-
console.log('TEST 7 - Parse all MSTest (.trx) result files (using matching pattern - *.trx /).');
94+
console.log('🧪🔹 [ TEST 7 - Parse all MSTest (.trx) result files (using matching pattern - *.trx /). ] 🔹🧪');
9395
let result = await parser.parse('./tests/sample-mstest-results/*.trx', null);
9496
let resultString = JSON.stringify(result, null, 4);
9597
//console.log(resultString);
@@ -102,7 +104,7 @@ const parser = require('../parser.js');
102104
})();
103105

104106
(async () => {
105-
console.log('TEST 8 - Parse all MSTest (.trx) result files (using matching pattern - **/*.trx /).');
107+
console.log('🧪🔹 [ TEST 8 - Parse all MSTest (.trx) result files (using matching pattern - **/*.trx /). ] 🔹🧪');
106108
let result = await parser.parse('./tests/sample-mstest-results/**/*.trx', null);
107109
let resultString = JSON.stringify(result, null, 4);
108110
//console.log(resultString);
@@ -115,7 +117,7 @@ const parser = require('../parser.js');
115117
})();
116118

117119
(async () => {
118-
console.log('TEST 9 - Get test case outcome status mappings (MSTest -> qTest) test.');
120+
console.log('🧪🔹 [ TEST 9 - Get test case outcome status mappings (MSTest -> qTest) test. ] 🔹🧪');
119121
//Different test outcome statuses comparison.
120122
let result = parser.getTestCaseStatus('Failed');
121123
assert.equal(result, 'FAIL');
@@ -138,7 +140,7 @@ const parser = require('../parser.js');
138140
})();
139141

140142
(async () => {
141-
console.log('TEST 10 - HTML entities test.');
143+
console.log('🧪🔹 [ TEST 10 - HTML entities test. ] 🔹🧪');
142144
//HTML entities conversion check
143145
let result = parser.htmlEntities('&');
144146
assert.equal(result, '&');
@@ -151,7 +153,7 @@ const parser = require('../parser.js');
151153
})();
152154

153155
(async () => {
154-
console.log('TEST 11 - Delay test.');
156+
console.log('🧪🔹 [ TEST 11 - Delay test. ] 🔹🧪');
155157
let waitTime = Math.floor(Math.random() * (4000 - 1000) + 1000);
156158
let timeNow = new Date().getTime();
157159
parser.delay(waitTime);
@@ -160,7 +162,7 @@ const parser = require('../parser.js');
160162
})();
161163

162164
(async () => {
163-
console.log('TEST 12 - Max delay test.');
165+
console.log('🧪🔹 [ TEST 12 - Max delay test. ] 🔹🧪');
164166
let waitTime = 20001;
165167
let timeNow = new Date().getTime();
166168
parser.delay(waitTime);
@@ -169,7 +171,7 @@ const parser = require('../parser.js');
169171
})();
170172

171173
(async () => {
172-
console.log('TEST 13 - Parse MSTest (TestResults-DifferentTestOutcomes.trx) results file with different test outcomes (using path with filename) & delay option.');
174+
console.log('🧪🔹 [ TEST 13 - Parse MSTest (TestResults-DifferentTestOutcomes.trx) results file with different test outcomes (using path with filename) & delay option. ] 🔹🧪');
173175
let waitTime = Math.floor(Math.random() * (4000 - 1000) + 1000);
174176
let result = await parser.parse('./tests/sample-mstest-results/TestResults-DifferentTestOutcomes.trx', { delay: waitTime });
175177
let resultString = JSON.stringify(result, null, 4);
@@ -185,7 +187,7 @@ const parser = require('../parser.js');
185187
})();
186188

187189
(async () => {
188-
console.log('TEST 14 - Parse all MSTest (.trx) result files (using path to result files - path ending /) & delay option.');
190+
console.log('🧪🔹 [ TEST 14 - Parse all MSTest (.trx) result files (using path to result files - path ending /) & delay option. ] 🔹🧪');
189191
let waitTime = Math.floor(Math.random() * (4000 - 1000) + 1000);
190192
let result = await parser.parse('./tests/sample-mstest-results/', { delay: waitTime });
191193
let resultString = JSON.stringify(result, null, 4);
@@ -199,7 +201,7 @@ const parser = require('../parser.js');
199201
})();
200202

201203
(async () => {
202-
console.log('TEST 15 - Test result files not found.');
204+
console.log('🧪🔹 [ TEST 15 - Test result files not found. ] 🔹🧪');
203205
try{
204206
await parser.parse('./tests/invalid-mstest-result-files/path-with-no-mstest-results/', null);
205207
} catch(e) {
@@ -209,7 +211,45 @@ const parser = require('../parser.js');
209211
})();
210212

211213
(async () => {
212-
console.log('TEST 16 - Invalid test results file.');
214+
console.log('🧪🔹 [ TEST 16 - Invalid test results file. ] 🔹🧪');
213215
let results = await parser.parse('./tests/invalid-mstest-result-files/TestResults-Invalid.trx', null);
214216
assert.equal(results.length, 0);
217+
})();
218+
219+
(async () => {
220+
console.log("🧪🔹 [ TEST 17 - Should log an error when XML parsing fails. ] 🔹🧪");
221+
222+
// Spy on console.error
223+
let consoleErrorSpy = [];
224+
const originalConsoleError = console.error;
225+
console.error = (msg, err) => {
226+
consoleErrorSpy.push(msg);
227+
originalConsoleError(msg, err);
228+
};
229+
230+
// Backup original functions
231+
const originalReadFileSync = fs.readFileSync;
232+
const originalStatSync = fs.statSync;
233+
const originalParseString = xml2js.parseString;
234+
235+
try {
236+
// Mock
237+
fs.statSync = () => ({ isFile: () => true });
238+
fs.readFileSync = () => "<TestRun><Invalid></TestRun>";
239+
xml2js.parseString = (data, options, callback) => {
240+
callback(new Error("Invalid XML format"), null);
241+
};
242+
243+
// Call the function
244+
let result = await parser.parse("./tests/sample-mstest-results/TestResults-Invalid.trx", null);
245+
assert(Array.isArray(result));
246+
assert(result.length === 0);
247+
assert(consoleErrorSpy.some(msg => msg.includes("Could not parse ./tests/sample-mstest-results/TestResults-Invalid.trx")), "Error log not found in console.error");
248+
} finally {
249+
// Restore original functions
250+
fs.statSync = originalStatSync;
251+
fs.readFileSync = originalReadFileSync;
252+
xml2js.parseString = originalParseString;
253+
console.error = originalConsoleError;
254+
}
215255
})();

0 commit comments

Comments
 (0)