Skip to content

Commit b10e864

Browse files
authored
Remove the usage of Maps and Sets, along with the Babel Runtime dependency (#250)
* Convert Map to tuple in roleElementMap * Convert Set to Array in roleElementMap * Convert Map and Set to tuple and array in elementRoleMap * Convert Map in domMap to Array of tuples * Remove Map from the roles definitions * MapOfRoleDefinitions to RoleDefinitions * Completely removed Map and Set usage * Remove the Babel Runtime dependency * Tests for rolesMap * Update ariaPropsMap with an API * Update domMap with an API * Remove the findIndex method from rolesMap and ariaPropsmap * Update elementRoleMap with an API * Update roleElementMap with an API * Fix a mixing method error in roleMap-test * Update package-lock * Fix package-locks.json
1 parent 1953885 commit b10e864

18 files changed

+7872
-7749
lines changed

.babelrc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,6 @@
88
"@babel/preset-flow"
99
],
1010
"plugins": [
11-
[
12-
"@babel/plugin-transform-runtime", {
13-
"corejs": 3
14-
}
15-
],
1611
"@babel/plugin-transform-flow-strip-types"
1712
]
1813
}

__tests__/src/ariaPropsMaps-test.js

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,46 @@ import expect from 'expect';
22
import ariaPropsMap from '../../src/ariaPropsMap';
33
import rolesMap from '../../src/rolesMap';
44

5-
describe('ariaPropsMap', function () {
6-
it('should be a Map', function () {
7-
expect(ariaPropsMap instanceof Map).toBe(true);
5+
describe('ariaPropsMap API', function () {
6+
it('entries', function () {
7+
expect(ariaPropsMap.entries().length).toEqual(48);
88
});
9-
it('should have size', function () {
10-
expect(ariaPropsMap.size).toBeGreaterThan(0);
9+
it('get', function () {
10+
expect(ariaPropsMap.get('aria-label')).toBeDefined();
11+
expect(ariaPropsMap.get('fake prop')).toBeUndefined();
1112
});
13+
it('has', function () {
14+
expect(ariaPropsMap.has('aria-label')).toEqual(true);
15+
expect(ariaPropsMap.has('fake prop')).toEqual(false);
16+
});
17+
it('keys', function () {
18+
expect(ariaPropsMap.keys().length).toEqual(48);
19+
});
20+
it('values', function () {
21+
expect(ariaPropsMap.values().length).toEqual(48);
22+
});
23+
});
1224

13-
const usedProps = new Set();
25+
describe('ariaPropsMap content', function () {
26+
const usedProps = [];
1427
for (const roleDefinition of rolesMap.values()) {
1528
for (const prop of Object.keys(roleDefinition.props)) {
16-
usedProps.add(prop);
29+
let isUnique = true;
30+
for (let i = 0; i < usedProps.length; i++) {
31+
if (usedProps[i] === prop) {
32+
isUnique = false;
33+
break;
34+
}
35+
}
36+
if (isUnique) {
37+
usedProps.push(prop);
38+
}
1739
}
1840
}
19-
for (const prop of ariaPropsMap.keys()) {
20-
describe(prop, function() {
21-
it('should be used in at least one role definition', function() {
22-
expect(usedProps.has(prop)).toBe(true, `Expected '${prop}' is used in at least one role definition`);
23-
});
24-
});
25-
}
41+
test.each(ariaPropsMap.entries())(
42+
'The prop %s should be used in at least one role definition',
43+
(prop) => {
44+
expect(usedProps.find(p => p === prop)).toBeDefined();
45+
}
46+
);
2647
});

__tests__/src/domMap-test.js

Lines changed: 156 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,162 @@
11
import expect from 'expect';
22
import domMap from '../../src/domMap';
33

4-
describe('domMap', function () {
5-
it('should be a Map', function () {
6-
expect(domMap instanceof Map).toBe(true);
4+
describe('domMap API', function () {
5+
it('entries', function () {
6+
expect(domMap.entries().length).toEqual(129);
7+
});
8+
it('get', function () {
9+
expect(domMap.get('a')).toBeDefined();
10+
expect(domMap.get('fake element')).toBeUndefined();
11+
});
12+
it('has', function () {
13+
expect(domMap.has('a')).toEqual(true);
14+
expect(domMap.has('fake element')).toEqual(false);
15+
});
16+
it('keys', function () {
17+
expect(domMap.keys().length).toEqual(129);
718
});
8-
it('should have size', function () {
9-
expect(domMap.size).toBeGreaterThan(0);
19+
it('values', function () {
20+
expect(domMap.values().length).toEqual(129);
21+
});
22+
});
23+
24+
describe('domMap', function () {
25+
it('should have specific items', function () {
26+
expect(domMap.entries()).toEqual(
27+
expect.arrayContaining(
28+
[
29+
["a", {"reserved": false}],
30+
["abbr", {"reserved": false}],
31+
["acronym", {"reserved": false}],
32+
["address", {"reserved": false}],
33+
["applet", {"reserved": false}],
34+
["area", {"reserved": false}],
35+
["article", {"reserved": false}],
36+
["aside", {"reserved": false}],
37+
["audio", {"reserved": false}],
38+
["b", {"reserved": false}],
39+
["base", {"reserved": true}],
40+
["bdi", {"reserved": false}],
41+
["bdo", {"reserved": false}],
42+
["big", {"reserved": false}],
43+
["blink", {"reserved": false}],
44+
["blockquote", {"reserved": false}],
45+
["body", {"reserved": false}],
46+
["br", {"reserved": false}],
47+
["button", {"reserved": false}],
48+
["canvas", {"reserved": false}],
49+
["caption", {"reserved": false}],
50+
["center", {"reserved": false}],
51+
["cite", {"reserved": false}],
52+
["code", {"reserved": false}],
53+
["col", {"reserved": true}],
54+
["colgroup", {"reserved": true}],
55+
["content", {"reserved": false}],
56+
["data", {"reserved": false}],
57+
["datalist", {"reserved": false}],
58+
["dd", {"reserved": false}],
59+
["del", {"reserved": false}],
60+
["details", {"reserved": false}],
61+
["dfn", {"reserved": false}],
62+
["dialog", {"reserved": false}],
63+
["dir", {"reserved": false}],
64+
["div", {"reserved": false}],
65+
["dl", {"reserved": false}],
66+
["dt", {"reserved": false}],
67+
["em", {"reserved": false}],
68+
["embed", {"reserved": false}],
69+
["fieldset", {"reserved": false}],
70+
["figcaption", {"reserved": false}],
71+
["figure", {"reserved": false}],
72+
["font", {"reserved": false}],
73+
["footer", {"reserved": false}],
74+
["form", {"reserved": false}],
75+
["frame", {"reserved": false}],
76+
["frameset", {"reserved": false}],
77+
["h1", {"reserved": false}],
78+
["h2", {"reserved": false}],
79+
["h3", {"reserved": false}],
80+
["h4", {"reserved": false}],
81+
["h5", {"reserved": false}],
82+
["h6", {"reserved": false}],
83+
["head", {"reserved": true}],
84+
["header", {"reserved": false}],
85+
["hgroup", {"reserved": false}],
86+
["hr", {"reserved": false}],
87+
["html", {"reserved": true}],
88+
["i", {"reserved": false}],
89+
["iframe", {"reserved": false}],
90+
["img", {"reserved": false}],
91+
["input", {"reserved": false}],
92+
["ins", {"reserved": false}],
93+
["kbd", {"reserved": false}],
94+
["keygen", {"reserved": false}],
95+
["label", {"reserved": false}],
96+
["legend", {"reserved": false}],
97+
["li", {"reserved": false}],
98+
["link", {"reserved": true}],
99+
["main", {"reserved": false}],
100+
["map", {"reserved": false}],
101+
["mark", {"reserved": false}],
102+
["marquee", {"reserved": false}],
103+
["menu", {"reserved": false}],
104+
["menuitem", {"reserved": false}],
105+
["meta", {"reserved": true}],
106+
["meter", {"reserved": false}],
107+
["nav", {"reserved": false}],
108+
["noembed", {"reserved": true}],
109+
["noscript", {"reserved": true}],
110+
["object", {"reserved": false}],
111+
["ol", {"reserved": false}],
112+
["optgroup", {"reserved": false}],
113+
["option", {"reserved": false}],
114+
["output", {"reserved": false}],
115+
["p", {"reserved": false}],
116+
["param", {"reserved": true}],
117+
["picture", {"reserved": true}],
118+
["pre", {"reserved": false}],
119+
["progress", {"reserved": false}],
120+
["q", {"reserved": false}],
121+
["rp", {"reserved": false}],
122+
["rt", {"reserved": false}],
123+
["rtc", {"reserved": false}],
124+
["ruby", {"reserved": false}],
125+
["s", {"reserved": false}],
126+
["samp", {"reserved": false}],
127+
["script", {"reserved": true}],
128+
["section", {"reserved": false}],
129+
["select", {"reserved": false}],
130+
["small", {"reserved": false}],
131+
["source", {"reserved": true}],
132+
["spacer", {"reserved": false}],
133+
["span", {"reserved": false}],
134+
["strike", {"reserved": false}],
135+
["strong", {"reserved": false}],
136+
["style", {"reserved": true}],
137+
["sub", {"reserved": false}],
138+
["summary", {"reserved": false}],
139+
["sup", {"reserved": false}],
140+
["table", {"reserved": false}],
141+
["tbody", {"reserved": false}],
142+
["td", {"reserved": false}],
143+
["textarea", {"reserved": false}],
144+
["tfoot", {"reserved": false}],
145+
["th", {"reserved": false}],
146+
["thead", {"reserved": false}],
147+
["time", {"reserved": false}],
148+
["title", {"reserved": true}],
149+
["tr", {"reserved": false}],
150+
["track", {"reserved": true}],
151+
["tt", {"reserved": false}],
152+
["u", {"reserved": false}],
153+
["ul", {"reserved": false}],
154+
["var", {"reserved": false}],
155+
["video", {"reserved": false}],
156+
["wbr", {"reserved": false}],
157+
["xmp", {"reserved": false}]
158+
]
159+
)
160+
);
10161
});
11162
});

0 commit comments

Comments
 (0)