forked from CodeYourFuture/html-css-git-exercises
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3-result.js
68 lines (63 loc) · 1.91 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
/**
* 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') || el.getAttribute('dateTime') !== correctTimes[index]) {
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);
});
})();