@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.
- package/CHANGELOG.md +12 -0
- package/package.json +1 -1
- package/build/tsconfig.json +0 -18
- package/index.ts +0 -275
- package/src/__tests__/unit/json-schema/v1.ts +0 -55
- package/src/__tests__/unit/schema/create-schema.ts +0 -214
- package/src/__tests__/unit/schema/default-schema.ts +0 -192
- package/src/__tests__/unit/schema/marks/annotation.ts +0 -46
- package/src/__tests__/unit/schema/marks/border.ts +0 -76
- package/src/__tests__/unit/schema/marks/breakout.ts +0 -24
- package/src/__tests__/unit/schema/marks/code.ts +0 -44
- package/src/__tests__/unit/schema/marks/confluence-inline-comment.ts +0 -25
- package/src/__tests__/unit/schema/marks/data-consumer.ts +0 -52
- package/src/__tests__/unit/schema/marks/em.ts +0 -37
- package/src/__tests__/unit/schema/marks/link.ts +0 -188
- package/src/__tests__/unit/schema/marks/strike.ts +0 -37
- package/src/__tests__/unit/schema/marks/strong.ts +0 -43
- package/src/__tests__/unit/schema/marks/subsup.ts +0 -50
- package/src/__tests__/unit/schema/marks/text-color.ts +0 -61
- package/src/__tests__/unit/schema/marks/underline.ts +0 -36
- package/src/__tests__/unit/schema/nodes/_consts.ts +0 -964
- package/src/__tests__/unit/schema/nodes/block-card.ts +0 -184
- package/src/__tests__/unit/schema/nodes/blockquote.ts +0 -44
- package/src/__tests__/unit/schema/nodes/bodied-extension.ts +0 -101
- package/src/__tests__/unit/schema/nodes/code-block.ts +0 -221
- package/src/__tests__/unit/schema/nodes/confluence-unsupported-block.ts +0 -32
- package/src/__tests__/unit/schema/nodes/confluence-unsupported-inline.ts +0 -35
- package/src/__tests__/unit/schema/nodes/date.ts +0 -51
- package/src/__tests__/unit/schema/nodes/decision-item.ts +0 -46
- package/src/__tests__/unit/schema/nodes/decision-list.ts +0 -52
- package/src/__tests__/unit/schema/nodes/embed-card.ts +0 -60
- package/src/__tests__/unit/schema/nodes/emoji.ts +0 -71
- package/src/__tests__/unit/schema/nodes/expand.ts +0 -51
- package/src/__tests__/unit/schema/nodes/extension.ts +0 -101
- package/src/__tests__/unit/schema/nodes/hard-break.ts +0 -24
- package/src/__tests__/unit/schema/nodes/heading.ts +0 -56
- package/src/__tests__/unit/schema/nodes/image.ts +0 -32
- package/src/__tests__/unit/schema/nodes/inline-card.ts +0 -106
- package/src/__tests__/unit/schema/nodes/inline-extension.ts +0 -79
- package/src/__tests__/unit/schema/nodes/layout-column.ts +0 -54
- package/src/__tests__/unit/schema/nodes/layout-section.ts +0 -95
- package/src/__tests__/unit/schema/nodes/list-item.ts +0 -49
- package/src/__tests__/unit/schema/nodes/media-group.ts +0 -67
- package/src/__tests__/unit/schema/nodes/media-single.ts +0 -171
- package/src/__tests__/unit/schema/nodes/media.ts +0 -384
- package/src/__tests__/unit/schema/nodes/mention.ts +0 -115
- package/src/__tests__/unit/schema/nodes/nestedExpand.ts +0 -72
- package/src/__tests__/unit/schema/nodes/ordered-list.ts +0 -49
- package/src/__tests__/unit/schema/nodes/panel.ts +0 -180
- package/src/__tests__/unit/schema/nodes/paragraph.ts +0 -25
- package/src/__tests__/unit/schema/nodes/placeholder.ts +0 -46
- package/src/__tests__/unit/schema/nodes/rule.ts +0 -24
- package/src/__tests__/unit/schema/nodes/status.ts +0 -120
- package/src/__tests__/unit/schema/nodes/tableNodes.ts +0 -555
- package/src/__tests__/unit/schema/nodes/task-item.ts +0 -39
- package/src/__tests__/unit/schema/nodes/task-list.ts +0 -45
- package/src/__tests__/unit/schema/nodes/unknown-block.ts +0 -42
- package/src/__tests__/unit/schema/nodes/unsupported-block.ts +0 -42
- package/src/__tests__/unit/schema/nodes/unsupported-inline.ts +0 -38
- package/src/__tests__/unit/utils/colors.ts +0 -42
- package/src/__tests__/unit/utils/url.ts +0 -209
- package/src/index.ts +0 -297
- package/src/json-schema/index.ts +0 -2
- package/src/schema/bitbucket-schema.ts +0 -43
- package/src/schema/confluence-schema.ts +0 -76
- package/src/schema/create-schema.ts +0 -337
- package/src/schema/default-schema.ts +0 -180
- package/src/schema/groups.ts +0 -30
- package/src/schema/index.ts +0 -238
- package/src/schema/inline-nodes.ts +0 -9
- package/src/schema/jira-schema.ts +0 -158
- package/src/schema/marks/__tests__/unit/annotation.ts +0 -18
- package/src/schema/marks/alignment.ts +0 -48
- package/src/schema/marks/annotation.ts +0 -107
- package/src/schema/marks/border.ts +0 -74
- package/src/schema/marks/breakout.ts +0 -42
- package/src/schema/marks/code.ts +0 -45
- package/src/schema/marks/confluence-inline-comment.ts +0 -32
- package/src/schema/marks/data-consumer.ts +0 -100
- package/src/schema/marks/em.ts +0 -19
- package/src/schema/marks/fragment.ts +0 -77
- package/src/schema/marks/indentation.ts +0 -47
- package/src/schema/marks/index.ts +0 -61
- package/src/schema/marks/link.ts +0 -139
- package/src/schema/marks/strike.ts +0 -26
- package/src/schema/marks/strong.ts +0 -45
- package/src/schema/marks/subsup.ts +0 -53
- package/src/schema/marks/text-color.ts +0 -172
- package/src/schema/marks/type-ahead-query.ts +0 -22
- package/src/schema/marks/underline.ts +0 -24
- package/src/schema/marks/unsupported-mark.ts +0 -9
- package/src/schema/marks/unsupported-node-attributes.ts +0 -8
- package/src/schema/nodes/block-card.ts +0 -121
- package/src/schema/nodes/blockquote.ts +0 -25
- package/src/schema/nodes/bodied-extension.ts +0 -75
- package/src/schema/nodes/bullet-list.ts +0 -17
- package/src/schema/nodes/caption.ts +0 -51
- package/src/schema/nodes/code-block.ts +0 -176
- package/src/schema/nodes/confluence-jira-issue.ts +0 -43
- package/src/schema/nodes/confluence-unsupported-block.ts +0 -29
- package/src/schema/nodes/confluence-unsupported-inline.ts +0 -30
- package/src/schema/nodes/date.ts +0 -38
- package/src/schema/nodes/decision-item.ts +0 -50
- package/src/schema/nodes/decision-list.ts +0 -56
- package/src/schema/nodes/doc.ts +0 -30
- package/src/schema/nodes/embed-card.ts +0 -62
- package/src/schema/nodes/emoji.ts +0 -89
- package/src/schema/nodes/expand.ts +0 -101
- package/src/schema/nodes/extension.ts +0 -60
- package/src/schema/nodes/hard-break.ts +0 -21
- package/src/schema/nodes/heading.ts +0 -64
- package/src/schema/nodes/image.ts +0 -32
- package/src/schema/nodes/index.ts +0 -184
- package/src/schema/nodes/inline-card.ts +0 -70
- package/src/schema/nodes/inline-extension.ts +0 -57
- package/src/schema/nodes/layout-column.ts +0 -68
- package/src/schema/nodes/layout-section.ts +0 -93
- package/src/schema/nodes/list-item.ts +0 -13
- package/src/schema/nodes/media-group.ts +0 -44
- package/src/schema/nodes/media-inline.ts +0 -19
- package/src/schema/nodes/media-single.ts +0 -179
- package/src/schema/nodes/media.ts +0 -253
- package/src/schema/nodes/mention.ts +0 -86
- package/src/schema/nodes/nested-expand.ts +0 -77
- package/src/schema/nodes/ordered-list.ts +0 -62
- package/src/schema/nodes/panel.ts +0 -133
- package/src/schema/nodes/paragraph.ts +0 -79
- package/src/schema/nodes/placeholder.ts +0 -40
- package/src/schema/nodes/rule.ts +0 -17
- package/src/schema/nodes/status.ts +0 -58
- package/src/schema/nodes/tableNodes.ts +0 -478
- package/src/schema/nodes/task-item.ts +0 -51
- package/src/schema/nodes/task-list.ts +0 -61
- package/src/schema/nodes/text.ts +0 -19
- package/src/schema/nodes/types/block-content.ts +0 -51
- package/src/schema/nodes/types/extensions.ts +0 -36
- package/src/schema/nodes/types/inline-content.ts +0 -56
- package/src/schema/nodes/types/list.ts +0 -54
- package/src/schema/nodes/types/mark.ts +0 -16
- package/src/schema/nodes/types/non-nestable-block-content.ts +0 -39
- package/src/schema/nodes/types/rich-media-common.ts +0 -51
- package/src/schema/nodes/unknown-block.ts +0 -13
- package/src/schema/nodes/unsupported-block.ts +0 -28
- package/src/schema/nodes/unsupported-inline.ts +0 -27
- package/src/schema/unsupported.ts +0 -4
- package/src/steps/__tests__/unit/analytics.ts +0 -72
- package/src/steps/__tests__/unit/link-meta-step.ts +0 -64
- package/src/steps/__tests__/unit/override-document-step.ts +0 -174
- package/src/steps/__tests__/unit/set-attrs.ts +0 -71
- package/src/steps/analytics.ts +0 -189
- package/src/steps/link-meta-step.ts +0 -105
- package/src/steps/override-document-step.ts +0 -97
- package/src/steps/set-attrs.tsx +0 -74
- package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-0.json +0 -15
- package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-1.json +0 -15
- package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-2.json +0 -15
- package/src/steps/table/__tests__/__fixtures__/basic/add-column-at-3.json +0 -15
- package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-0.json +0 -9
- package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-1.json +0 -9
- package/src/steps/table/__tests__/__fixtures__/basic/remove-column-at-2.json +0 -9
- package/src/steps/table/__tests__/__fixtures__/basic/remove-table/remove-last-row-inverted.json +0 -98
- package/src/steps/table/__tests__/__fixtures__/basic/remove-table/remove-last-row.json +0 -71
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-0-inverted.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-0.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-1-inverted.json +0 -21
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-1.json +0 -21
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-2-inverted.json +0 -21
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-2.json +0 -21
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-3-inverted.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/add-column-at-3.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-0-inverted.json +0 -63
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-0.json +0 -21
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-1-inverted.json +0 -64
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-1.json +0 -22
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-2-inverted.json +0 -63
- package/src/steps/table/__tests__/__fixtures__/merge-cells/columns/remove-column-at-2.json +0 -21
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-0-inverted.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-0.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-1-inverted.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-1.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-2-inverted.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-2.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-3-inverted.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/add-column-at-3.json +0 -19
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-0-inverted.json +0 -52
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-0.json +0 -38
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-1-inverted.json +0 -52
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-1.json +0 -38
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-2-inverted.json +0 -25
- package/src/steps/table/__tests__/__fixtures__/merge-cells/rows/remove-column-at-2.json +0 -11
- package/src/steps/table/__tests__/_utils.ts +0 -102
- package/src/steps/table/__tests__/add-column-merge-columns.ts +0 -509
- package/src/steps/table/__tests__/add-column-merge-rows.ts +0 -466
- package/src/steps/table/__tests__/add-column.ts +0 -638
- package/src/steps/table/add-column.ts +0 -443
- package/src/steps/table/constants.ts +0 -4
- package/src/steps/table/sort-column.ts +0 -57
- package/src/steps/table/types.ts +0 -48
- package/src/steps/table/utils/cell-step.ts +0 -239
- package/src/steps/table/utils/cells-at-column.ts +0 -75
- package/src/steps/table/utils/find-column.ts +0 -90
- package/src/steps/table/utils/get-table-rect-from-doc.ts +0 -37
- package/src/steps/table/utils/side-effects/rows.ts +0 -327
- package/src/steps/table/utils/side-effects/side-effects.ts +0 -90
- package/src/steps/table/utils/side-effects/table.ts +0 -112
- package/src/steps/table/utils/side-effects/types.ts +0 -34
- package/src/steps/table/utils/table-map.ts +0 -28
- package/src/steps/type-ahead.ts +0 -100
- package/src/steps.ts +0 -16
- package/src/utils/colors.ts +0 -171
- package/src/utils/confluence/emoji.ts +0 -99
- package/src/utils/extensions.ts +0 -32
- package/src/utils/index.ts +0 -69
- package/src/utils/parseDOM.ts +0 -2
- package/src/utils/url.ts +0 -173
- package/src/utils/uuid.ts +0 -19
- package/src/version.json +0 -6
- 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 = `"${firstSourceId}","${secondSourceId}"`;
|
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
|
-
}
|