Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/frontend/content_editor/services/create_editor_spec.js')
-rw-r--r--spec/frontend/content_editor/services/create_editor_spec.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/frontend/content_editor/services/create_editor_spec.js b/spec/frontend/content_editor/services/create_editor_spec.js
new file mode 100644
index 00000000000..4cf63e608eb
--- /dev/null
+++ b/spec/frontend/content_editor/services/create_editor_spec.js
@@ -0,0 +1,39 @@
+import { PROVIDE_SERIALIZER_OR_RENDERER_ERROR } from '~/content_editor/constants';
+import createEditor from '~/content_editor/services/create_editor';
+import createMarkdownSerializer from '~/content_editor/services/markdown_serializer';
+
+jest.mock('~/content_editor/services/markdown_serializer');
+
+describe('content_editor/services/create_editor', () => {
+ const buildMockSerializer = () => ({
+ serialize: jest.fn(),
+ deserialize: jest.fn(),
+ });
+
+ describe('creating an editor', () => {
+ it('uses markdown serializer when a renderMarkdown function is provided', async () => {
+ const renderMarkdown = () => true;
+ const mockSerializer = buildMockSerializer();
+ createMarkdownSerializer.mockReturnValueOnce(mockSerializer);
+
+ await createEditor({ renderMarkdown });
+
+ expect(createMarkdownSerializer).toHaveBeenCalledWith({ render: renderMarkdown });
+ });
+
+ it('uses custom serializer when it is provided', async () => {
+ const mockSerializer = buildMockSerializer();
+ const serializedContent = '**bold**';
+
+ mockSerializer.serialize.mockReturnValueOnce(serializedContent);
+
+ const editor = await createEditor({ serializer: mockSerializer });
+
+ expect(editor.getSerializedContent()).toBe(serializedContent);
+ });
+
+ it('throws an error when neither a serializer or renderMarkdown fn are provided', async () => {
+ await expect(createEditor()).rejects.toThrow(PROVIDE_SERIALIZER_OR_RENDERER_ERROR);
+ });
+ });
+});