@markuplint/rules 3.8.0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/lib/attr-duplication/index.d.ts +1 -3
  2. package/lib/attr-value-quotes/index.d.ts +2 -2
  3. package/lib/case-sensitive-attr-name/index.d.ts +1 -1
  4. package/lib/case-sensitive-tag-name/index.d.ts +1 -1
  5. package/lib/character-reference/index.d.ts +1 -1
  6. package/lib/class-naming/index.d.ts +1 -1
  7. package/lib/create-message.d.ts +2 -12
  8. package/lib/deprecated-attr/index.d.ts +1 -3
  9. package/lib/deprecated-element/index.d.ts +1 -3
  10. package/lib/disallowed-element/index.d.ts +1 -1
  11. package/lib/doctype/index.d.ts +2 -2
  12. package/lib/end-tag/index.d.ts +1 -1
  13. package/lib/helpers.d.ts +18 -39
  14. package/lib/id-duplication/index.d.ts +1 -3
  15. package/lib/index.d.ts +7 -7
  16. package/lib/ineffective-attr/index.d.ts +1 -3
  17. package/lib/invalid-attr/index.d.ts +31 -38
  18. package/lib/label-has-control/index.d.ts +1 -3
  19. package/lib/landmark-roles/index.d.ts +3 -3
  20. package/lib/no-boolean-attr-value/index.d.ts +1 -3
  21. package/lib/no-default-value/index.d.ts +1 -3
  22. package/lib/no-empty-palpable-content/index.d.ts +3 -3
  23. package/lib/no-hard-code-id/index.d.ts +1 -3
  24. package/lib/no-refer-to-non-existent-id/index.d.ts +4 -9
  25. package/lib/no-use-event-handler-attr/index.d.ts +2 -2
  26. package/lib/permitted-contents/choice.d.ts +1 -7
  27. package/lib/permitted-contents/complex-branch.d.ts +1 -7
  28. package/lib/permitted-contents/count-pattern.d.ts +2 -17
  29. package/lib/permitted-contents/debug.browser.d.ts +15 -15
  30. package/lib/permitted-contents/debug.d.ts +1 -1
  31. package/lib/permitted-contents/index.d.ts +1 -1
  32. package/lib/permitted-contents/matches-selector.d.ts +1 -6
  33. package/lib/permitted-contents/order.d.ts +1 -7
  34. package/lib/permitted-contents/recursive-branch.d.ts +1 -7
  35. package/lib/permitted-contents/represent-transparent-nodes.d.ts +3 -7
  36. package/lib/permitted-contents/start.d.ts +1 -6
  37. package/lib/permitted-contents/types.d.ts +29 -29
  38. package/lib/permitted-contents/utils.d.ts +1 -1
  39. package/lib/placeholder-label-option/index.d.ts +1 -1
  40. package/lib/require-accessible-name/index.d.ts +2 -2
  41. package/lib/require-datetime/index.d.ts +2 -2
  42. package/lib/require-datetime/types.d.ts +2 -2
  43. package/lib/required-attr/index.d.ts +3 -3
  44. package/lib/required-element/index.d.ts +2 -2
  45. package/lib/required-h1/index.d.ts +3 -3
  46. package/lib/use-list/index.d.ts +2 -2
  47. package/lib/wai-aria/checkings/_.d.ts +12 -6
  48. package/lib/wai-aria/checkings/default-value.d.ts +3 -7
  49. package/lib/wai-aria/checkings/deprecated-props.d.ts +4 -8
  50. package/lib/wai-aria/checkings/implicit-props.d.ts +4 -8
  51. package/lib/wai-aria/checkings/no-global-prop.d.ts +3 -7
  52. package/lib/wai-aria/checkings/required-owned-elements.d.ts +3 -7
  53. package/lib/wai-aria/checkings/required-prop copy.d.ts +12 -6
  54. package/lib/wai-aria/checkings/required-prop.d.ts +6 -12
  55. package/lib/wai-aria/checkings/unadopted-explicit-roles.d.ts +12 -6
  56. package/lib/wai-aria/checkings/value.d.ts +6 -15
  57. package/lib/wai-aria/index.d.ts +1 -1
  58. package/lib/wai-aria/types.d.ts +10 -10
  59. package/lib/xxx/index.d.ts +2 -0
  60. package/lib/xxx/index.js +32 -0
  61. package/package.json +13 -15
  62. package/test/attr-check.spec.js +77 -0
  63. package/test/attr-duplication/index.spec.js +159 -0
  64. package/test/attr-value-quotes/index.spec.js +133 -0
  65. package/test/case-sensitive-attr-name/index.spec.js +65 -0
  66. package/test/case-sensitive-tag-name/index.spec.js +80 -0
  67. package/test/character-reference/index.spec.js +57 -0
  68. package/test/class-naming/index.spec.js +470 -0
  69. package/test/create-message.spec.js +497 -0
  70. package/test/deprecated-attr/index.spec.js +48 -0
  71. package/test/deprecated-element/index.spec.js +48 -0
  72. package/test/disallowed-element/index.spec.js +90 -0
  73. package/test/doctype/index.spec.js +50 -0
  74. package/test/end-tag/index.spec.js +162 -0
  75. package/test/id-duplication/index.spec.js +47 -0
  76. package/test/ineffective-attr/index.spec.js +31 -0
  77. package/test/invalid-attr/index.spec.js +1632 -0
  78. package/test/label-has-control/index.spec.js +29 -0
  79. package/test/landmark-roles/index.spec.js +187 -0
  80. package/test/no-boolean-attr-value/index.spec.js +41 -0
  81. package/test/no-default-value/index.spec.js +74 -0
  82. package/test/no-empty-palpable-content/index.spec.js +115 -0
  83. package/test/no-hard-code-id/index.spec.js +100 -0
  84. package/test/no-refer-to-non-existent-id/index.spec.js +254 -0
  85. package/test/no-use-event-handler-attr/index.spec.js +57 -0
  86. package/test/permitted-contents/choice.spec.js +174 -0
  87. package/test/permitted-contents/count-pattern.spec.js +308 -0
  88. package/test/permitted-contents/index.spec.js +1371 -0
  89. package/test/permitted-contents/matches-selector.spec.js +59 -0
  90. package/test/permitted-contents/order.spec.js +351 -0
  91. package/test/permitted-contents/recursive-branch.spec.js +41 -0
  92. package/test/permitted-contents/represent-transparent-nodes.spec.js +24 -0
  93. package/test/permitted-contents/start.spec.js +67 -0
  94. package/test/placeholder-label-option/index.spec.js +113 -0
  95. package/test/require-accessible-name/index.spec.js +446 -0
  96. package/test/require-datetime/index.spec.js +54 -0
  97. package/test/require-datetime/utils.spec.js +52 -0
  98. package/test/required-attr/index.spec.js +414 -0
  99. package/test/required-element/index.spec.js +188 -0
  100. package/test/required-h1/index.spec.js +69 -0
  101. package/test/use-list/index.spec.js +109 -0
  102. package/test/wai-aria/checkings/value.spec.js +33 -0
  103. package/test/wai-aria/index.spec.js +1173 -0
@@ -0,0 +1,109 @@
1
+ const { mlRuleTest } = require('markuplint');
2
+
3
+ const rule = require('../../lib/use-list').default;
4
+
5
+ test('use bullets', async () => {
6
+ expect(
7
+ (
8
+ await mlRuleTest(
9
+ rule,
10
+ `<div>
11
+ •A<br>
12
+ •B<br>
13
+ •C
14
+ </div>`,
15
+ )
16
+ ).violations.length,
17
+ ).toBe(3);
18
+ });
19
+
20
+ test('use bullets (character reference)', async () => {
21
+ expect(
22
+ (
23
+ await mlRuleTest(
24
+ rule,
25
+ `<div>
26
+ &bullet;A<br>
27
+ &bullet;B<br>
28
+ &bullet;C
29
+ </div>`,
30
+ )
31
+ ).violations.length,
32
+ ).toBe(3);
33
+ });
34
+
35
+ test('use katakana middle', async () => {
36
+ expect(
37
+ (
38
+ await mlRuleTest(
39
+ rule,
40
+ `<div>
41
+ <span>・りんご</span>
42
+ <span>・みかん</span>
43
+ <span>・ぶどう</span>
44
+ </div>`,
45
+ )
46
+ ).violations.length,
47
+ ).toBe(3);
48
+ });
49
+
50
+ test('Markdown like', async () => {
51
+ expect(
52
+ (
53
+ await mlRuleTest(
54
+ rule,
55
+ `<div>
56
+ - A<br>
57
+ - B<br>
58
+ - C
59
+ </div>`,
60
+ )
61
+ ).violations.length,
62
+ ).toBe(3);
63
+ });
64
+
65
+ test('Markdown list marker character with no space', async () => {
66
+ expect((await mlRuleTest(rule, '<div>-MINUS</div>')).violations.length).toBe(0);
67
+ });
68
+
69
+ test('Character only', async () => {
70
+ expect((await mlRuleTest(rule, '<div>●</div>')).violations.length).toBe(0);
71
+ });
72
+
73
+ test('continuous', async () => {
74
+ expect(
75
+ (
76
+ await mlRuleTest(
77
+ rule,
78
+ `<div>
79
+ <span>‣‣‣</span><span>It is not a list item</span>
80
+ </div>`,
81
+ )
82
+ ).violations.length,
83
+ ).toBe(0);
84
+ });
85
+
86
+ test('emoji (surrogate pair character)', async () => {
87
+ /**
88
+ * surrogate pair character
89
+ */
90
+ const sp = '\u{1F846}';
91
+ expect(sp.length).toBe(2);
92
+ expect(
93
+ (
94
+ await mlRuleTest(
95
+ rule,
96
+ `<div>
97
+ ${sp}A<br/>
98
+ ${sp}B<br/>
99
+ ${sp}C
100
+ </div>`,
101
+ {
102
+ rule: {
103
+ value: [sp],
104
+ },
105
+ },
106
+ )
107
+ ).violations.length,
108
+ ).toBe(3);
109
+ });
@@ -0,0 +1,33 @@
1
+ const { checkAriaValue } = require('../../../lib/wai-aria/checkings/value');
2
+
3
+ describe('checkAriaValue', () => {
4
+ test('token', () => {
5
+ expect(checkAriaValue('token', 'a', ['a'])).toBe(true);
6
+ expect(checkAriaValue('token', 'a', ['b'])).toBe(false);
7
+ });
8
+
9
+ test('token list', () => {
10
+ expect(checkAriaValue('token list', 'a', ['a'])).toBe(true);
11
+ expect(checkAriaValue('token list', 'a', ['b'])).toBe(false);
12
+ expect(checkAriaValue('token list', 'a b', ['a'])).toBe(false);
13
+ expect(checkAriaValue('token list', 'a b', ['b'])).toBe(false);
14
+ expect(checkAriaValue('token list', 'a b', ['a', 'b'])).toBe(true);
15
+ expect(checkAriaValue('token list', 'a b', ['a', 'b', 'c'])).toBe(true);
16
+ expect(checkAriaValue('token list', 'a b d', ['a', 'b', 'c'])).toBe(false);
17
+ });
18
+
19
+ test('integer', () => {
20
+ expect(checkAriaValue('integer', '1', [])).toBe(true);
21
+ expect(checkAriaValue('integer', '-1', [])).toBe(true);
22
+ expect(checkAriaValue('integer', '-1.1', [])).toBe(false);
23
+ expect(checkAriaValue('integer', '-1.1', [])).toBe(false);
24
+ });
25
+
26
+ test('number', () => {
27
+ expect(checkAriaValue('number', '1', [])).toBe(true);
28
+ expect(checkAriaValue('number', '-1', [])).toBe(true);
29
+ expect(checkAriaValue('number', '-1.1', [])).toBe(true);
30
+ expect(checkAriaValue('number', '-1.1', [])).toBe(true);
31
+ expect(checkAriaValue('number', '-1.1.1', [])).toBe(false);
32
+ });
33
+ });