This repository was archived by the owner on Feb 27, 2023. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 245
/
Copy path3-result.js
84 lines (79 loc) · 2.16 KB
/
3-result.js
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
/**
* Check if exercise three has been completed
*/
(function() {
var tests = [
{
name: "<header>",
result: false
},
{
name: 'role="main"',
result: false
},
{
name: "<article>",
result: false
},
{
name: "<time> (EXTRA CHALLENGE)",
result: false
}
],
resultEl = document.getElementById("result"),
headerEl = document.querySelector(".site-header"),
mainEl = document.querySelector(".messages"),
articleEls = document.querySelectorAll(".message"),
timeEls = document.querySelectorAll(".message__time"),
correctTimes = ["2018-03-25 19:25", "2018-03-25 19:35", "2018-03-25 19:38"],
successMessage = "✔",
failMessage = "✘";
if (typeof headerEl !== "undefined" && headerEl.tagName === "HEADER") {
tests.find(function(test) {
return test.name === "<header>";
}).result = true;
}
if (
typeof mainEl !== "undefined" &&
mainEl.hasAttribute("role") &&
mainEl.getAttribute("role") === "main"
) {
tests.find(function(test) {
return test.name === 'role="main"';
}).result = true;
}
if (articleEls.length) {
let result = true;
result.article = true;
articleEls.forEach(function(el) {
if (el.tagName !== "ARTICLE") {
result = false;
}
});
tests.find(function(test) {
return test.name === "<article>";
}).result = result;
}
if (timeEls.length) {
let result = true;
timeEls.forEach(function(el, index) {
if (
el.tagName !== "TIME" ||
!el.hasAttribute("dateTime") ||
new Date(el.getAttribute("dateTime")).getTime() !== new Date(correctTimes[index]).getTime()
) {
result = false;
}
});
tests.find(function(test) {
return test.name === "<time> (EXTRA CHALLENGE)";
}).result = result;
}
tests.forEach(function(test) {
var resultMessage = test.result ? successMessage : failMessage;
var el = document.createElement("div");
el.className = "result__item";
el.appendChild(document.createTextNode(resultMessage + " Added " + test.name));
resultEl.appendChild(el);
});
})();