-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrenderer.js
More file actions
81 lines (68 loc) · 3.25 KB
/
renderer.js
File metadata and controls
81 lines (68 loc) · 3.25 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
import { start } from './src/main/httpomate/brain.js';
import { ERROR_MESSAGES, CONSTANTS } from './src/main/httpomate/constants.js';
let latestResults = []
var testDropdown = document.getElementById("testDropdown");
var testTable = document.getElementById("testTable");
document.getElementById('run-tests').addEventListener('click', async () => {
let userFile = getUserInputtedFile()
if (validateInitialTestsFile(userFile)) {
await start(userFile).then((testResults) => {
updateViewWithResults(testResults);
})
}
})
testDropdown.addEventListener("change", function() {
updateStepTable()
});
function clearTestDropdown() {
const dropdown = document.getElementById('testDropdown');
dropdown.innerHTML = '';
}
function updateViewWithResults(results) {
latestResults = results
clearTestDropdown()
for(var i=0; i < results.length; i++) {
var option = document.createElement("option");
option.text = results[i].testName;
option.value = results[i].testName;
testDropdown.add(option);
}
updateStepTable()
}
function updateStepTable() {
var selectedTest = testDropdown.value;
for(var i=0; i < latestResults.length; i++) {
if(latestResults[i].testName === selectedTest) {
let stepResults = latestResults[i].stepResults
var tableHTML = "<table style='border-collapse: collapse; width: 100%;'>";
tableHTML += "<tr style='border-bottom: 1px solid #ddd;'><th style=' text-align: left;padding: 8px;'>Step</th><th style='text-align: left;padding: 8px;'>Result</th><th style='text-align: left;padding: 8px;'>Action</th><th style=' text-align: left;padding: 8px;'>Action Message</th><th style=' text-align: left;padding: 8px;'>Error message</th></tr>";
for(var i=0; i < stepResults.length; i++) {
if(!stepResults[i].error) {
stepResults[i].error = ""
}
if(stepResults[i].result === CONSTANTS.PASSED) {
tableHTML += "<tr style='border-bottom: 1px solid #ddd;'><td style='text-align: left;padding: 8px;'>"+stepResults[i].name+"</td><td style='text-align: left;padding: 8px;background-color: #4CAF50;'>"+stepResults[i].result+"</td><td style='text-align: left;padding: 8px;'>"+stepResults[i].actionName+"</td><td style='text-align: left;padding: 8px;'>"+stepResults[i].actionMessage+"</td><td style='text-align: left;padding: 8px;'>"+stepResults[i].error+"</td></tr>";
} else {
tableHTML += "<tr style='border-bottom: 1px solid #ddd;'><td style='text-align: left;padding: 8px;'>"+stepResults[i].name+"</td><td style='text-align: left;padding: 8px;background-color: #ff0000;'>"+stepResults[i].result+"</td><td style='text-align: left;padding: 8px;'>"+stepResults[i].error+"</td><td style='text-align: left;padding: 8px;'>"+stepResults[i].actionMessage+"</td><td style='text-align: left;padding: 8px;'>"+stepResults[i].error+"</td></tr>";
}
}
tableHTML += "</table>";
testTable.innerHTML = tableHTML;
}
}
}
function validateInitialTestsFile(file) {
if(file) {
if (file.name !== CONSTANTS.TESTS_JSON) {
alert(ERROR_MESSAGES.TESTS_FILE_WRONG_NAME)
return false
} else {
return true
}
} else {
alert(ERROR_MESSAGES.TESTS_FILE_REQUIRED)
}
}
function getUserInputtedFile() {
return document.getElementById('file').files[0];
}