@atlaskit/adf-schema 28.1.11 → 28.1.13

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 (218) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/package.json +1 -1
  3. package/build/tsconfig.json +0 -18
  4. package/index.ts +0 -275
  5. package/src/__tests__/unit/json-schema/v1.ts +0 -55
  6. package/src/__tests__/unit/schema/create-schema.ts +0 -214
  7. package/src/__tests__/unit/schema/default-schema.ts +0 -192
  8. package/src/__tests__/unit/schema/marks/annotation.ts +0 -46
  9. package/src/__tests__/unit/schema/marks/border.ts +0 -76
  10. package/src/__tests__/unit/schema/marks/breakout.ts +0 -24
  11. package/src/__tests__/unit/schema/marks/code.ts +0 -44
  12. package/src/__tests__/unit/schema/marks/confluence-inline-comment.ts +0 -25
  13. package/src/__tests__/unit/schema/marks/data-consumer.ts +0 -52
  14. package/src/__tests__/unit/schema/marks/em.ts +0 -37
  15. package/src/__tests__/unit/schema/marks/link.ts +0 -188
  16. package/src/__tests__/unit/schema/marks/strike.ts +0 -37
  17. package/src/__tests__/unit/schema/marks/strong.ts +0 -43
  18. package/src/__tests__/unit/schema/marks/subsup.ts +0 -50
  19. package/src/__tests__/unit/schema/marks/text-color.ts +0 -61
  20. package/src/__tests__/unit/schema/marks/underline.ts +0 -36
  21. package/src/__tests__/unit/schema/nodes/_consts.ts +0 -964
  22. package/src/__tests__/unit/schema/nodes/block-card.ts +0 -184
  23. package/src/__tests__/unit/schema/nodes/blockquote.ts +0 -44
  24. package/src/__tests__/unit/schema/nodes/bodied-extension.ts +0 -101
  25. package/src/__tests__/unit/schema/nodes/code-block.ts +0 -221
  26. package/src/__tests__/unit/schema/nodes/confluence-unsupported-block.ts +0 -32
  27. package/src/__tests__/unit/schema/nodes/confluence-unsupported-inline.ts +0 -35
  28. package/src/__tests__/unit/schema/nodes/date.ts +0 -51
  29. package/src/__tests__/unit/schema/nodes/decision-item.ts +0 -46
  30. package/src/__tests__/unit/schema/nodes/decision-list.ts +0 -52
  31. package/src/__tests__/unit/schema/nodes/embed-card.ts +0 -60
  32. package/src/__tests__/unit/schema/nodes/emoji.ts +0 -71
  33. package/src/__tests__/unit/schema/nodes/expand.ts +0 -51
  34. package/src/__tests__/unit/schema/nodes/extension.ts +0 -101
  35. package/src/__tests__/unit/schema/nodes/hard-break.ts +0 -24
  36. package/src/__tests__/unit/schema/nodes/heading.ts +0 -56
  37. package/src/__tests__/unit/schema/nodes/image.ts +0 -32
  38. package/src/__tests__/unit/schema/nodes/inline-card.ts +0 -106
  39. package/src/__tests__/unit/schema/nodes/inline-extension.ts +0 -79
  40. package/src/__tests__/unit/schema/nodes/layout-column.ts +0 -54
  41. package/src/__tests__/unit/schema/nodes/layout-section.ts +0 -95
  42. package/src/__tests__/unit/schema/nodes/list-item.ts +0 -49
  43. package/src/__tests__/unit/schema/nodes/media-group.ts +0 -67
  44. package/src/__tests__/unit/schema/nodes/media-single.ts +0 -171
  45. package/src/__tests__/unit/schema/nodes/media.ts +0 -384
  46. package/src/__tests__/unit/schema/nodes/mention.ts +0 -115
  47. package/src/__tests__/unit/schema/nodes/nestedExpand.ts +0 -72
  48. package/src/__tests__/unit/schema/nodes/ordered-list.ts +0 -49
  49. package/src/__tests__/unit/schema/nodes/panel.ts +0 -180
  50. package/src/__tests__/unit/schema/nodes/paragraph.ts +0 -25
  51. package/src/__tests__/unit/schema/nodes/placeholder.ts +0 -46
  52. package/src/__tests__/unit/schema/nodes/rule.ts +0 -24
  53. package/src/__tests__/unit/schema/nodes/status.ts +0 -120
  54. package/src/__tests__/unit/schema/nodes/tableNodes.ts +0 -555
  55. package/src/__tests__/unit/schema/nodes/task-item.ts +0 -39
  56. package/src/__tests__/unit/schema/nodes/task-list.ts +0 -45
  57. package/src/__tests__/unit/schema/nodes/unknown-block.ts +0 -42
  58. package/src/__tests__/unit/schema/nodes/unsupported-block.ts +0 -42
  59. package/src/__tests__/unit/schema/nodes/unsupported-inline.ts +0 -38
  60. package/src/__tests__/unit/utils/colors.ts +0 -42
  61. package/src/__tests__/unit/utils/url.ts +0 -209
  62. package/src/index.ts +0 -297
  63. package/src/json-schema/index.ts +0 -2
  64. package/src/schema/bitbucket-schema.ts +0 -43
  65. package/src/schema/confluence-schema.ts +0 -76
  66. package/src/schema/create-schema.ts +0 -337
  67. package/src/schema/default-schema.ts +0 -180
  68. package/src/schema/groups.ts +0 -30
  69. package/src/schema/index.ts +0 -238
  70. package/src/schema/inline-nodes.ts +0 -9
  71. package/src/schema/jira-schema.ts +0 -158
  72. package/src/schema/marks/__tests__/unit/annotation.ts +0 -18
  73. package/src/schema/marks/alignment.ts +0 -48
  74. package/src/schema/marks/annotation.ts +0 -107
  75. package/src/schema/marks/border.ts +0 -74
  76. package/src/schema/marks/breakout.ts +0 -42
  77. package/src/schema/marks/code.ts +0 -45
  78. package/src/schema/marks/confluence-inline-comment.ts +0 -32
  79. package/src/schema/marks/data-consumer.ts +0 -100
  80. package/src/schema/marks/em.ts +0 -19
  81. package/src/schema/marks/fragment.ts +0 -77
  82. package/src/schema/marks/indentation.ts +0 -47
  83. package/src/schema/marks/index.ts +0 -61
  84. package/src/schema/marks/link.ts +0 -139
  85. package/src/schema/marks/strike.ts +0 -26
  86. package/src/schema/marks/strong.ts +0 -45
  87. package/src/schema/marks/subsup.ts +0 -53
  88. package/src/schema/marks/text-color.ts +0 -172
  89. package/src/schema/marks/type-ahead-query.ts +0 -22
  90. package/src/schema/marks/underline.ts +0 -24
  91. package/src/schema/marks/unsupported-mark.ts +0 -9
  92. package/src/schema/marks/unsupported-node-attributes.ts +0 -8
  93. package/src/schema/nodes/block-card.ts +0 -121
  94. package/src/schema/nodes/blockquote.ts +0 -25
  95. package/src/schema/nodes/bodied-extension.ts +0 -75
  96. package/src/schema/nodes/bullet-list.ts +0 -17
  97. package/src/schema/nodes/caption.ts +0 -51
  98. package/src/schema/nodes/code-block.ts +0 -176
  99. package/src/schema/nodes/confluence-jira-issue.ts +0 -43
  100. package/src/schema/nodes/confluence-unsupported-block.ts +0 -29
  101. package/src/schema/nodes/confluence-unsupported-inline.ts +0 -30
  102. package/src/schema/nodes/date.ts +0 -38
  103. package/src/schema/nodes/decision-item.ts +0 -50
  104. package/src/schema/nodes/decision-list.ts +0 -56
  105. package/src/schema/nodes/doc.ts +0 -30
  106. package/src/schema/nodes/embed-card.ts +0 -62
  107. package/src/schema/nodes/emoji.ts +0 -89
  108. package/src/schema/nodes/expand.ts +0 -101
  109. package/src/schema/nodes/extension.ts +0 -60
  110. package/src/schema/nodes/hard-break.ts +0 -21
  111. package/src/schema/nodes/heading.ts +0 -64
  112. package/src/schema/nodes/image.ts +0 -32
  113. package/src/schema/nodes/index.ts +0 -184
  114. package/src/schema/nodes/inline-card.ts +0 -70
  115. package/src/schema/nodes/inline-extension.ts +0 -57
  116. package/src/schema/nodes/layout-column.ts +0 -68
  117. package/src/schema/nodes/layout-section.ts +0 -93
  118. package/src/schema/nodes/list-item.ts +0 -13
  119. package/src/schema/nodes/media-group.ts +0 -44
  120. package/src/schema/nodes/media-inline.ts +0 -19
  121. package/src/schema/nodes/media-single.ts +0 -179
  122. package/src/schema/nodes/media.ts +0 -253
  123. package/src/schema/nodes/mention.ts +0 -86
  124. package/src/schema/nodes/nested-expand.ts +0 -77
  125. package/src/schema/nodes/ordered-list.ts +0 -62
  126. package/src/schema/nodes/panel.ts +0 -133
  127. package/src/schema/nodes/paragraph.ts +0 -79
  128. package/src/schema/nodes/placeholder.ts +0 -40
  129. package/src/schema/nodes/rule.ts +0 -17
  130. package/src/schema/nodes/status.ts +0 -58
  131. package/src/schema/nodes/tableNodes.ts +0 -478
  132. package/src/schema/nodes/task-item.ts +0 -51
  133. package/src/schema/nodes/task-list.ts +0 -61
  134. package/src/schema/nodes/text.ts +0 -19
  135. package/src/schema/nodes/types/block-content.ts +0 -51
  136. package/src/schema/nodes/types/extensions.ts +0 -36
  137. package/src/schema/nodes/types/inline-content.ts +0 -56
  138. package/src/schema/nodes/types/list.ts +0 -54
  139. package/src/schema/nodes/types/mark.ts +0 -16
  140. package/src/schema/nodes/types/non-nestable-block-content.ts +0 -39
  141. package/src/schema/nodes/types/rich-media-common.ts +0 -51
  142. package/src/schema/nodes/unknown-block.ts +0 -13
  143. package/src/schema/nodes/unsupported-block.ts +0 -28
  144. package/src/schema/nodes/unsupported-inline.ts +0 -27
  145. package/src/schema/unsupported.ts +0 -4
  146. package/src/steps/__tests__/unit/analytics.ts +0 -72
  147. package/src/steps/__tests__/unit/link-meta-step.ts +0 -64
  148. package/src/steps/__tests__/unit/override-document-step.ts +0 -174
  149. package/src/steps/__tests__/unit/set-attrs.ts +0 -71
  150. package/src/steps/analytics.ts +0 -189
  151. package/src/steps/link-meta-step.ts +0 -105
  152. package/src/steps/override-document-step.ts +0 -97
  153. package/src/steps/set-attrs.tsx +0 -74
  154. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-0.json +0 -15
  155. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-1.json +0 -15
  156. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-2.json +0 -15
  157. package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-3.json +0 -15
  158. package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-0.json +0 -9
  159. package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-1.json +0 -9
  160. package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-2.json +0 -9
  161. package/src/steps/table/__tests__/__fixtures__/basic/remove-table/remove-last-row-inverted.json +0 -98
  162. package/src/steps/table/__tests__/__fixtures__/basic/remove-table/remove-last-row.json +0 -71
  163. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-0-inverted.json +0 -19
  164. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-0.json +0 -19
  165. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-1-inverted.json +0 -21
  166. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-1.json +0 -21
  167. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-2-inverted.json +0 -21
  168. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-2.json +0 -21
  169. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-3-inverted.json +0 -19
  170. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-3.json +0 -19
  171. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-0-inverted.json +0 -63
  172. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-0.json +0 -21
  173. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-1-inverted.json +0 -64
  174. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-1.json +0 -22
  175. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-2-inverted.json +0 -63
  176. package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-2.json +0 -21
  177. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-0-inverted.json +0 -19
  178. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-0.json +0 -19
  179. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-1-inverted.json +0 -19
  180. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-1.json +0 -19
  181. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-2-inverted.json +0 -19
  182. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-2.json +0 -19
  183. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-3-inverted.json +0 -19
  184. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-3.json +0 -19
  185. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-0-inverted.json +0 -52
  186. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-0.json +0 -38
  187. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-1-inverted.json +0 -52
  188. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-1.json +0 -38
  189. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-2-inverted.json +0 -25
  190. package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-2.json +0 -11
  191. package/src/steps/table/__tests__/_utils.ts +0 -102
  192. package/src/steps/table/__tests__/add-column-merge-columns.ts +0 -509
  193. package/src/steps/table/__tests__/add-column-merge-rows.ts +0 -466
  194. package/src/steps/table/__tests__/add-column.ts +0 -638
  195. package/src/steps/table/add-column.ts +0 -443
  196. package/src/steps/table/constants.ts +0 -4
  197. package/src/steps/table/sort-column.ts +0 -57
  198. package/src/steps/table/types.ts +0 -48
  199. package/src/steps/table/utils/cell-step.ts +0 -239
  200. package/src/steps/table/utils/cells-at-column.ts +0 -75
  201. package/src/steps/table/utils/find-column.ts +0 -90
  202. package/src/steps/table/utils/get-table-rect-from-doc.ts +0 -37
  203. package/src/steps/table/utils/side-effects/rows.ts +0 -327
  204. package/src/steps/table/utils/side-effects/side-effects.ts +0 -90
  205. package/src/steps/table/utils/side-effects/table.ts +0 -112
  206. package/src/steps/table/utils/side-effects/types.ts +0 -34
  207. package/src/steps/table/utils/table-map.ts +0 -28
  208. package/src/steps/type-ahead.ts +0 -100
  209. package/src/steps.ts +0 -16
  210. package/src/utils/colors.ts +0 -171
  211. package/src/utils/confluence/emoji.ts +0 -99
  212. package/src/utils/extensions.ts +0 -32
  213. package/src/utils/index.ts +0 -69
  214. package/src/utils/parseDOM.ts +0 -2
  215. package/src/utils/url.ts +0 -173
  216. package/src/utils/uuid.ts +0 -19
  217. package/src/version.json +0 -6
  218. package/tsconfig.json +0 -13
@@ -1,192 +0,0 @@
1
- import {
2
- defaultSchema,
3
- getSchemaBasedOnStage,
4
- } from '../../../schema/default-schema';
5
-
6
- describe('Default Schema', () => {
7
- describe('Nodes', () => {
8
- it('should contain the `mediaInline` node', () => {
9
- expect(defaultSchema.nodes.mediaInline).toBeDefined();
10
- });
11
- });
12
-
13
- describe('Marks', () => {
14
- it('should contain the `typeAheadQuery` mark', () => {
15
- expect(defaultSchema.marks.typeAheadQuery).toBeDefined();
16
- });
17
-
18
- it('should contain the `fragment` mark', () => {
19
- expect(defaultSchema.marks.fragment).toBeDefined();
20
- });
21
- });
22
- });
23
-
24
- describe('Get Schema Based On Stage', () => {
25
- describe('Default / Full Schema', () => {
26
- it('should contain the nodes', () => {
27
- const schema = getSchemaBasedOnStage();
28
- expect(Object.keys(schema.nodes)).toEqual([
29
- 'doc',
30
- 'paragraph',
31
- 'text',
32
- 'bulletList',
33
- 'orderedList',
34
- 'listItem',
35
- 'heading',
36
- 'blockquote',
37
- 'codeBlock',
38
- 'panel',
39
- 'rule',
40
- 'image',
41
- 'mention',
42
- 'caption',
43
- 'media',
44
- 'mediaGroup',
45
- 'mediaSingle',
46
- 'mediaInline',
47
- 'placeholder',
48
- 'layoutSection',
49
- 'layoutColumn',
50
- 'hardBreak',
51
- 'emoji',
52
- 'table',
53
- 'tableCell',
54
- 'tableRow',
55
- 'tableHeader',
56
- 'confluenceJiraIssue',
57
- 'confluenceUnsupportedInline',
58
- 'confluenceUnsupportedBlock',
59
- 'decisionList',
60
- 'decisionItem',
61
- 'taskList',
62
- 'taskItem',
63
- 'date',
64
- 'status',
65
- 'expand',
66
- 'nestedExpand',
67
- 'extension',
68
- 'inlineExtension',
69
- 'bodiedExtension',
70
- 'inlineCard',
71
- 'blockCard',
72
- 'embedCard',
73
- 'unknownBlock',
74
- 'unsupportedBlock',
75
- 'unsupportedInline',
76
- ]);
77
- });
78
-
79
- it('should contain the marks', () => {
80
- const schema = getSchemaBasedOnStage();
81
- expect(Object.keys(schema.marks)).toEqual([
82
- 'link',
83
- 'em',
84
- 'strong',
85
- 'textColor',
86
- 'strike',
87
- 'subsup',
88
- 'underline',
89
- 'code',
90
- 'typeAheadQuery',
91
- 'alignment',
92
- 'annotation',
93
- 'confluenceInlineComment',
94
- '__colorGroupDeclaration',
95
- '__fontStyleGroupDeclaration',
96
- '__searchQueryGroupDeclaration',
97
- '__linkGroupDeclaration',
98
- 'breakout',
99
- 'dataConsumer',
100
- 'fragment',
101
- 'indentation',
102
- 'border',
103
- 'unsupportedMark',
104
- 'unsupportedNodeAttribute',
105
- ]);
106
- });
107
- });
108
-
109
- describe('Stage-0', () => {
110
- it('should contain the nodes', () => {
111
- const schema = getSchemaBasedOnStage('stage0');
112
- expect(Object.keys(schema.nodes)).toEqual([
113
- 'doc',
114
- 'paragraph',
115
- 'text',
116
- 'bulletList',
117
- 'orderedList',
118
- 'listItem',
119
- 'heading',
120
- 'blockquote',
121
- 'codeBlock',
122
- 'panel',
123
- 'rule',
124
- 'image',
125
- 'mention',
126
- 'caption',
127
- 'media',
128
- 'mediaGroup',
129
- 'mediaSingle',
130
- 'mediaInline',
131
- 'placeholder',
132
- 'layoutSection',
133
- 'layoutColumn',
134
- 'hardBreak',
135
- 'emoji',
136
- 'table',
137
- 'tableCell',
138
- 'tableRow',
139
- 'tableHeader',
140
- 'confluenceJiraIssue',
141
- 'confluenceUnsupportedInline',
142
- 'confluenceUnsupportedBlock',
143
- 'decisionList',
144
- 'decisionItem',
145
- 'taskList',
146
- 'taskItem',
147
- 'date',
148
- 'status',
149
- 'expand',
150
- 'nestedExpand',
151
- 'extension',
152
- 'inlineExtension',
153
- 'bodiedExtension',
154
- 'inlineCard',
155
- 'blockCard',
156
- 'embedCard',
157
- 'unknownBlock',
158
- 'unsupportedBlock',
159
- 'unsupportedInline',
160
- ]);
161
- });
162
-
163
- it('should contain the marks', () => {
164
- const schema = getSchemaBasedOnStage('stage0');
165
- expect(Object.keys(schema.marks)).toEqual([
166
- 'link',
167
- 'em',
168
- 'strong',
169
- 'textColor',
170
- 'strike',
171
- 'subsup',
172
- 'underline',
173
- 'code',
174
- 'typeAheadQuery',
175
- 'alignment',
176
- 'annotation',
177
- 'confluenceInlineComment',
178
- '__colorGroupDeclaration',
179
- '__fontStyleGroupDeclaration',
180
- '__searchQueryGroupDeclaration',
181
- '__linkGroupDeclaration',
182
- 'breakout',
183
- 'dataConsumer',
184
- 'fragment',
185
- 'indentation',
186
- 'border',
187
- 'unsupportedMark',
188
- 'unsupportedNodeAttribute',
189
- ]);
190
- });
191
- });
192
- });
@@ -1,46 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import { toHTML, fromHTML } from 'adf-test-helpers/src/adf-schema/html-helpers';
3
- import { Schema } from '@atlaskit/editor-prosemirror/model';
4
-
5
- const packageName = process.env._PACKAGE_NAME_ as string;
6
-
7
- describe(`${packageName}/schema confluence-inline-comment mark`, () => {
8
- let schema: Schema;
9
- beforeEach(() => {
10
- schema = makeSchema();
11
- });
12
-
13
- it('serializes to the correct HTML', () => {
14
- const node = schema.text('foo', [
15
- schema.marks.annotation.create({
16
- id: 'hash-ref-goes-here',
17
- }),
18
- ]);
19
-
20
- const html = toHTML(node, schema);
21
- expect(html).toContain('data-id="hash-ref-goes-here"');
22
- expect(html).toContain('data-mark-type="annotation"');
23
- expect(html).toContain('data-mark-annotation-type="inlineComment"');
24
- });
25
-
26
- it('parses annotation correctly from html', () => {
27
- const doc = fromHTML(
28
- `<p><span data-mark-type="annotation" data-mark-annotation-type="inlineComment" data-id="comment-id" >annotated text</span></p>`,
29
- schema,
30
- );
31
- const annotationNode = doc.firstChild!.firstChild!;
32
- expect(annotationNode.marks).toHaveLength(1);
33
- expect(annotationNode.marks[0].type.name).toBe('annotation');
34
- expect(annotationNode.marks[0].attrs).toEqual({
35
- id: 'comment-id',
36
- annotationType: 'inlineComment',
37
- });
38
- });
39
- });
40
-
41
- function makeSchema() {
42
- return createSchema({
43
- nodes: ['doc', 'paragraph', 'text'],
44
- marks: ['annotation'],
45
- });
46
- }
@@ -1,76 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import { fromHTML, toHTML } from 'adf-test-helpers/src/adf-schema/html-helpers';
3
-
4
- const testAttr = { color: '#172B4D', size: 1 };
5
- const testAttrFalse = { color: '#12345', size: 0 };
6
- const packageName = process.env._PACKAGE_NAME_ as string;
7
-
8
- describe(`${packageName}/schema border mark`, () => {
9
- it('serializes to the correct HTML', () => {
10
- const schema = makeSchema();
11
- const node = schema.nodes.media.create(
12
- {},
13
- [],
14
- [schema.marks.border.create(testAttr)],
15
- );
16
- const html = toHTML(node, schema);
17
- expect(html).toContain(
18
- `data-mark-type="border" data-color="#172B4D" data-size="1" style="--custom-palette-color: var(--ds-text, #172B4D)"`,
19
- );
20
- });
21
- });
22
-
23
- it('should parse border with color in lower case', () => {
24
- const schema = makeSchema();
25
- const doc = fromHTML(
26
- `<div data-mark-type="border" data-color="${testAttr.color}" data-size="${testAttr.size}"><div data-node-type="media" data-type="file" data-id="dummy-id"></div></div>`,
27
- schema,
28
- );
29
- const dataConsumerNode = doc.firstChild!.firstChild!;
30
-
31
- expect(dataConsumerNode.marks).toHaveLength(1);
32
- expect(dataConsumerNode.marks[0].type.name).toBe('border');
33
- expect(dataConsumerNode.marks[0].attrs).toEqual({
34
- size: testAttr.size,
35
- color: '#172b4d',
36
- });
37
- });
38
-
39
- it('should parse border with attributes as false if size and color are not expected values', () => {
40
- const schema = makeSchema();
41
- const doc = fromHTML(
42
- `<div data-mark-type="border" data-color="${testAttrFalse.color}" data-size="${testAttrFalse.size}"><div data-node-type="media" data-type="file" data-id="dummy-id"></div></div>`,
43
- schema,
44
- );
45
- const dataConsumerNode = doc.firstChild!.firstChild!;
46
-
47
- expect(dataConsumerNode.marks).toHaveLength(1);
48
- expect(dataConsumerNode.marks[0].type.name).toBe('border');
49
- expect(dataConsumerNode.marks[0].attrs).toEqual({
50
- size: false,
51
- color: false,
52
- });
53
- });
54
-
55
- it('should parse maximum size as 3', () => {
56
- const schema = makeSchema();
57
- const doc = fromHTML(
58
- `<div data-mark-type="border" data-color="${testAttr.color}" data-size=5><div data-node-type="media" data-type="file" data-id="dummy-id"></div></div>`,
59
- schema,
60
- );
61
- const dataConsumerNode = doc.firstChild!.firstChild!;
62
-
63
- expect(dataConsumerNode.marks).toHaveLength(1);
64
- expect(dataConsumerNode.marks[0].type.name).toBe('border');
65
- expect(dataConsumerNode.marks[0].attrs).toEqual({
66
- size: 3,
67
- color: '#172b4d',
68
- });
69
- });
70
-
71
- function makeSchema() {
72
- return createSchema({
73
- nodes: ['doc', 'paragraph', 'text', 'mediaSingle', 'media', 'caption'],
74
- marks: ['border'],
75
- });
76
- }
@@ -1,24 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import { toHTML } from 'adf-test-helpers/src/adf-schema/html-helpers';
3
-
4
- const packageName = process.env._PACKAGE_NAME_ as string;
5
-
6
- describe(`${packageName}/schema breakout mark`, () => {
7
- it('serializes to the correct HTML', () => {
8
- const schema = makeSchema();
9
- const node = schema.nodes.codeBlock.create(
10
- {},
11
- [],
12
- [schema.marks.breakout.create({ mode: 'wide' })],
13
- );
14
- const html = toHTML(node, schema);
15
- expect(html).toContain('data-mode="wide"');
16
- });
17
- });
18
-
19
- function makeSchema() {
20
- return createSchema({
21
- nodes: ['doc', 'paragraph', 'text', 'codeBlock'],
22
- marks: ['breakout'],
23
- });
24
- }
@@ -1,44 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import {
3
- fromHTML,
4
- toHTML,
5
- textWithMarks,
6
- } from 'adf-test-helpers/src/adf-schema';
7
-
8
- const packageName = process.env._PACKAGE_NAME_ as string;
9
-
10
- describe(`${packageName}/schema code mark`, () => {
11
- itMatches('<span class="code">text</span>', 'text');
12
- itMatches('<code>text</code>', 'text');
13
- itMatches('<tt>text</tt>', 'text');
14
- itMatches(
15
- `<span style="font-family: Menlo, Monaco, 'Courier New', monospace;">text</span>`,
16
- 'text',
17
- );
18
- itMatches(`<span style="white-space: pre;">text</span>`, 'text');
19
-
20
- it('serializes to <span class="code">', () => {
21
- const schema = makeSchema();
22
- const node = schema.text('foo', [schema.marks.code.create()]);
23
- expect(toHTML(node, schema)).toEqual(
24
- '<span class="code" spellcheck="false">foo</span>',
25
- );
26
- });
27
- });
28
-
29
- function makeSchema() {
30
- return createSchema({
31
- nodes: ['doc', 'paragraph', 'text'],
32
- marks: ['code'],
33
- });
34
- }
35
-
36
- function itMatches(html: string, expectedText: string) {
37
- it(`matches ${html}`, () => {
38
- const schema = makeSchema();
39
- const doc = fromHTML(`${html}`, schema);
40
- const codeNode = schema.marks.code.create();
41
-
42
- expect(textWithMarks(doc, expectedText, [codeNode])).toBe(true);
43
- });
44
- }
@@ -1,25 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import { toHTML } from 'adf-test-helpers/src/adf-schema/html-helpers';
3
-
4
- const packageName = process.env._PACKAGE_NAME_ as string;
5
-
6
- describe(`${packageName}/schema confluence-inline-comment mark`, () => {
7
- it('serializes to <span data-reference="hash-ref-goes-here">', () => {
8
- const schema = makeSchema();
9
- const node = schema.text('foo', [
10
- schema.marks.confluenceInlineComment.create({
11
- reference: 'hash-ref-goes-here',
12
- }),
13
- ]);
14
- expect(toHTML(node, schema)).toContain(
15
- 'data-reference="hash-ref-goes-here"',
16
- );
17
- });
18
- });
19
-
20
- function makeSchema() {
21
- return createSchema({
22
- nodes: ['doc', 'paragraph', 'text'],
23
- marks: ['confluenceInlineComment'],
24
- });
25
- }
@@ -1,52 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import { toHTML, fromHTML } from 'adf-test-helpers/src/adf-schema/html-helpers';
3
- import { Schema } from '@atlaskit/editor-prosemirror/model';
4
-
5
- const packageName = process.env._PACKAGE_NAME_ as string;
6
-
7
- describe(`${packageName}/schema data-consumer mark`, () => {
8
- let schema: Schema;
9
- const firstSourceId = 'first-source-id';
10
- const secondSourceId = 'second-source-id';
11
- const dataSourceString = `&quot;${firstSourceId}&quot;,&quot;${secondSourceId}&quot;`;
12
-
13
- beforeEach(() => {
14
- schema = makeSchema();
15
- });
16
-
17
- it('serializes to the correct HTML', () => {
18
- const node = schema.text('foo', [
19
- schema.marks.dataConsumer.create({
20
- sources: [firstSourceId, secondSourceId],
21
- }),
22
- ]);
23
- const html = toHTML(node, schema);
24
-
25
- expect(html).toContain(`data-sources="[${dataSourceString}]"`);
26
- expect(html).toContain('data-mark-type="dataConsumer"');
27
- });
28
-
29
- it.each(['div', 'span'])(
30
- 'parses annotation correctly from html for %s',
31
- (wrapperType) => {
32
- const doc = fromHTML(
33
- `<${wrapperType} data-mark-type="dataConsumer" data-sources="[${dataSourceString}]">foo</${wrapperType}>`,
34
- schema,
35
- );
36
- const dataConsumerNode = doc.firstChild!;
37
-
38
- expect(dataConsumerNode.marks).toHaveLength(1);
39
- expect(dataConsumerNode.marks[0].type.name).toBe('dataConsumer');
40
- expect(dataConsumerNode.marks[0].attrs).toEqual({
41
- sources: [firstSourceId, secondSourceId],
42
- });
43
- },
44
- );
45
- });
46
-
47
- function makeSchema() {
48
- return createSchema({
49
- nodes: ['doc', 'paragraph', 'text'],
50
- marks: ['dataConsumer'],
51
- });
52
- }
@@ -1,37 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import {
3
- fromHTML,
4
- toHTML,
5
- textWithMarks,
6
- } from 'adf-test-helpers/src/adf-schema';
7
-
8
- const packageName = process.env._PACKAGE_NAME_ as string;
9
-
10
- describe(`${packageName}/schema em mark`, () => {
11
- itMatches('<em>text</em>', 'text');
12
- itMatches('<i>text</i>', 'text');
13
- itMatches('<span style="font-style: italic">text</span>', 'text');
14
-
15
- it('serializes to <em>', () => {
16
- const schema = makeSchema();
17
- const node = schema.text('foo', [schema.marks.em.create()]);
18
- expect(toHTML(node, schema)).toEqual('<em>foo</em>');
19
- });
20
- });
21
-
22
- function makeSchema() {
23
- return createSchema({
24
- nodes: ['doc', 'paragraph', 'text'],
25
- marks: ['em'],
26
- });
27
- }
28
-
29
- function itMatches(html: string, expectedText: string) {
30
- it(`matches ${html}`, () => {
31
- const schema = makeSchema();
32
- const doc = fromHTML(`${html}`, schema);
33
- const emNode = schema.marks.em.create();
34
-
35
- expect(textWithMarks(doc, expectedText, [emNode])).toBe(true);
36
- });
37
- }
@@ -1,188 +0,0 @@
1
- import { createSchema } from '../../../../schema/create-schema';
2
- import {
3
- toHTML,
4
- fromHTML,
5
- textWithMarks,
6
- } from 'adf-test-helpers/src/adf-schema';
7
- import { Node } from '@atlaskit/editor-prosemirror/model';
8
-
9
- const href = 'http://atlassian.com';
10
- const href2 = 'http://atlassian.com/test';
11
- const href3 = 'http://atlassian.com?test=123';
12
- const unsafeHref = 'javascript:alert("hack")';
13
- const content = 'foo';
14
- const sampleLink = `<a href="${href}">${content}</a>`;
15
- const sampleBlockLink = `<a href="${href}" data-block-link="true" class="blockLink"><p>${content}</p></a>`;
16
- const emptyLink = `<a>${content}</a>`;
17
- const packageName = process.env._PACKAGE_NAME_ as string;
18
-
19
- describe(`${packageName}/schema link mark`, () => {
20
- itMatches(`<p>${sampleLink}</p>`, href, content);
21
- itMatches(
22
- `<p><a href="${href}" title="test" alt="hello">${content}</a></p>`,
23
- href,
24
- content,
25
- );
26
- itMatches(`<p><a href="${href2}">${content}</a></p>`, href2, content);
27
- itMatches(`<p><a href="${href3}">${content}</a></p>`, href3, content);
28
-
29
- describe('when there is a textColor mark', () => {
30
- it('should not throw an error when the check() is called', () => {
31
- const doc = {
32
- type: 'text',
33
- text: 'Foo',
34
- marks: [
35
- {
36
- type: 'link',
37
- attrs: {
38
- href: 'http://example.com',
39
- },
40
- },
41
-
42
- {
43
- type: 'textColor',
44
- attrs: {
45
- color: '#ff5630',
46
- },
47
- },
48
- ],
49
- };
50
-
51
- const textNode = Node.fromJSON(makeSchema(), doc);
52
- expect(() => {
53
- textNode.check();
54
- }).not.toThrow();
55
- });
56
- });
57
-
58
- describe('whitelist URLs', () => {
59
- const schema = makeSchema();
60
-
61
- it(`should parse links starting from http://`, () => {
62
- const doc = fromHTML(
63
- `<p><a href="http://www.atlassian.com">Atlassian</a></p>`,
64
- schema,
65
- );
66
- const textNode = doc.firstChild!.firstChild!;
67
-
68
- expect(textNode.marks).toHaveLength(1);
69
- });
70
-
71
- it(`should parse links starting from https://`, () => {
72
- const doc = fromHTML(
73
- `<p><a href="https://www.atlassian.com">Atlassian</a></p>`,
74
- schema,
75
- );
76
- const textNode = doc.firstChild!.firstChild!;
77
-
78
- expect(textNode.marks).toHaveLength(1);
79
- });
80
-
81
- it(`should parse links starting from sourcetree://`, () => {
82
- const doc = fromHTML(
83
- `<p><a href="sourcetree://cloneRepo/ssh://user@bitbucket.org/owner/repo.git">Clone me</a></p>`,
84
- schema,
85
- );
86
- const textNode = doc.firstChild!.firstChild!;
87
-
88
- expect(textNode.marks).toHaveLength(1);
89
- });
90
-
91
- it(`should parse root relative links`, () => {
92
- const doc = fromHTML(`<p><a href="/TEST-100">TEST-100</a></p>`, schema);
93
- const textNode = doc.firstChild!.firstChild!;
94
-
95
- expect(textNode.marks).toHaveLength(1);
96
- });
97
-
98
- it(`should not parse links starting from javascript://`, () => {
99
- const doc = fromHTML(
100
- `<p><a href="javascript:alert(1)">Click me</a></p>`,
101
- schema,
102
- );
103
- const textNode = doc.firstChild!.firstChild!;
104
-
105
- expect(textNode.marks).toHaveLength(0);
106
- });
107
-
108
- it(`should not parse links starting from javascript://`, () => {
109
- const doc = fromHTML(
110
- `<p><a href="view-source:https://bitbucket.org/atlassian/atlaskit/pull-requests/3196/fix-component-prevent-javascript-links-for/diff">View source</a></p>`,
111
- schema,
112
- );
113
- const textNode = doc.firstChild!.firstChild!;
114
-
115
- expect(textNode.marks).toHaveLength(0);
116
- });
117
-
118
- it(`should remove unsafe link when serialize`, () => {
119
- const schema = makeSchema();
120
- const node = schema.text(content, [
121
- schema.marks.link.create({ href: unsafeHref }),
122
- ]);
123
- const html: string = toHTML(node, schema);
124
-
125
- expect(html).toContain(`${emptyLink}`);
126
- });
127
- });
128
-
129
- describe('serialization', () => {
130
- it(`serializes to ${sampleLink}`, () => {
131
- const schema = makeSchema();
132
- const node = schema.text(content, [schema.marks.link.create({ href })]);
133
- const html: string = toHTML(node, schema);
134
- expect(html).toContain(`${sampleLink}`);
135
- });
136
- it(`serializes block marked links ${sampleLink}`, () => {
137
- const schema = makeSchema();
138
- const node = schema.nodes.paragraph.create(null, schema.text(content), [
139
- schema.marks.link.create({ href }),
140
- ]);
141
- const html: string = toHTML(node, schema);
142
- expect(html).toContain(`${sampleBlockLink}`);
143
- });
144
- });
145
-
146
- describe('confluence metadata', () => {
147
- it('creates a PM node with attributes from ADF', () => {
148
- const doc = {
149
- type: 'text',
150
- text: 'Foo',
151
- marks: [
152
- {
153
- type: 'link',
154
- attrs: {
155
- href: 'http://example.com',
156
- __confluenceMetadata: {
157
- linkType: 'value',
158
- },
159
- },
160
- },
161
- ],
162
- };
163
-
164
- const text = Node.fromJSON(makeSchema(), doc);
165
- expect(text.marks[0].attrs).toHaveProperty('__confluenceMetadata');
166
- expect(text.marks[0].attrs.__confluenceMetadata).toHaveProperty(
167
- 'linkType',
168
- 'value',
169
- );
170
- });
171
- });
172
- });
173
-
174
- function makeSchema() {
175
- return createSchema({
176
- nodes: ['doc', 'paragraph', 'text'],
177
- marks: ['link', 'textColor'],
178
- });
179
- }
180
-
181
- function itMatches(html: string, href: string, expectedText: string) {
182
- it(`matches ${html}`, () => {
183
- const schema = makeSchema();
184
- const doc = fromHTML(html, schema);
185
- const link = schema.marks.link.create({ href });
186
- expect(textWithMarks(doc, expectedText, [link])).toBe(true);
187
- });
188
- }