summaryrefslogtreecommitdiff
path: root/spec/frontend/content_editor/services/build_serializer_config_spec.js
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/content_editor/services/build_serializer_config_spec.js')
-rw-r--r--spec/frontend/content_editor/services/build_serializer_config_spec.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/frontend/content_editor/services/build_serializer_config_spec.js b/spec/frontend/content_editor/services/build_serializer_config_spec.js
new file mode 100644
index 00000000000..532e0493830
--- /dev/null
+++ b/spec/frontend/content_editor/services/build_serializer_config_spec.js
@@ -0,0 +1,38 @@
+import * as Blockquote from '~/content_editor/extensions/blockquote';
+import * as Bold from '~/content_editor/extensions/bold';
+import * as Dropcursor from '~/content_editor/extensions/dropcursor';
+import * as Paragraph from '~/content_editor/extensions/paragraph';
+
+import buildSerializerConfig from '~/content_editor/services/build_serializer_config';
+
+describe('content_editor/services/build_serializer_config', () => {
+ describe('given one or more content editor extensions', () => {
+ it('creates a serializer config that collects all extension serializers by type', () => {
+ const extensions = [Bold, Blockquote, Paragraph];
+ const serializerConfig = buildSerializerConfig(extensions);
+
+ extensions.forEach(({ tiptapExtension, serializer }) => {
+ const { name, type } = tiptapExtension;
+ expect(serializerConfig[`${type}s`][name]).toBe(serializer);
+ });
+ });
+ });
+
+ describe('given an extension without serializer', () => {
+ it('does not include the extension in the serializer config', () => {
+ const serializerConfig = buildSerializerConfig([Dropcursor]);
+
+ expect(serializerConfig.marks[Dropcursor.tiptapExtension.name]).toBe(undefined);
+ expect(serializerConfig.nodes[Dropcursor.tiptapExtension.name]).toBe(undefined);
+ });
+ });
+
+ describe('given no extensions', () => {
+ it('creates an empty serializer config', () => {
+ expect(buildSerializerConfig()).toStrictEqual({
+ marks: {},
+ nodes: {},
+ });
+ });
+ });
+});