Skip to content

Commit

Permalink
test: Add a couple of tests for each serializer new get* function
Browse files Browse the repository at this point in the history
  • Loading branch information
rfgamaral committed Mar 3, 2023
1 parent b044a0a commit 982e7a9
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 13 deletions.
22 changes: 21 additions & 1 deletion src/serializers/html/html.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { PlainTextKit } from '../../extensions/plain-text/plain-text-kit'
import { RichTextKit } from '../../extensions/rich-text/rich-text-kit'
import { createSuggestionExtension } from '../../factories/create-suggestion-extension'

import { createHTMLSerializer } from './html'
import { createHTMLSerializer, getHTMLSerializerInstance } from './html'

import type { HTMLSerializerReturnType } from './html'

Expand Down Expand Up @@ -242,6 +242,26 @@ const MARKDOWN_INPUT_TABLES = `| Syntax | Description |
| Paragraph | Text | And more |`

describe('HTML Serializer', () => {
describe('Singleton Instances', () => {
describe('when the editor schema for two HTML serializers are the same', () => {
test('`getHTMLSerializerInstance` returns the same instance', () => {
const htmlSerializerA = getHTMLSerializerInstance(getSchema([PlainTextKit]))
const htmlSerializerB = getHTMLSerializerInstance(getSchema([PlainTextKit]))

expect(htmlSerializerA).toBe(htmlSerializerB)
})
})

describe('when the editor schema for two HTML serializers are NOT the same', () => {
test('`getHTMLSerializerInstance` returns different instances', () => {
const htmlSerializerA = getHTMLSerializerInstance(getSchema([PlainTextKit]))
const htmlSerializerB = getHTMLSerializerInstance(getSchema([RichTextKit]))

expect(htmlSerializerA).not.toBe(htmlSerializerB)
})
})
})

describe('Plain-text Document', () => {
describe('with default extensions', () => {
let htmlSerializer: HTMLSerializerReturnType
Expand Down
48 changes: 36 additions & 12 deletions src/serializers/markdown/markdown.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { PlainTextKit } from '../../extensions/plain-text/plain-text-kit'
import { RichTextKit } from '../../extensions/rich-text/rich-text-kit'
import { createSuggestionExtension } from '../../factories/create-suggestion-extension'

import { createMarkdownSerializer } from './markdown'
import { createMarkdownSerializer, getMarkdownSerializerInstance } from './markdown'

import type { MarkdownSerializerReturnType } from './markdown'

Expand Down Expand Up @@ -214,6 +214,26 @@ const HTML_INPUT_PONCTUATION_CHARACTERS = `<p>\\' text \\'</p>
<p>\\~ text \\~</p>`

describe('Markdown Serializer', () => {
describe('Singleton Instances', () => {
describe('when the editor schema for two Markdown serializers are the same', () => {
test('`getMarkdownSerializerInstance` returns the same instance', () => {
const markdownSerializerA = getMarkdownSerializerInstance(getSchema([PlainTextKit]))
const markdownSerializerB = getMarkdownSerializerInstance(getSchema([PlainTextKit]))

expect(markdownSerializerA).toBe(markdownSerializerB)
})
})

describe('when the editor schema for two Markdown serializers are NOT the same', () => {
test('`getMarkdownSerializerInstance` returns different instances', () => {
const markdownSerializerA = getMarkdownSerializerInstance(getSchema([PlainTextKit]))
const markdownSerializerB = getMarkdownSerializerInstance(getSchema([RichTextKit]))

expect(markdownSerializerA).not.toBe(markdownSerializerB)
})
})
})

describe('Plain-text Document', () => {
describe('with default extensions', () => {
let markdownSerializer: MarkdownSerializerReturnType
Expand Down Expand Up @@ -640,17 +660,21 @@ See the section on [\`code\`](#code).`,
})

describe('without custom extensions', () => {
const markdownSerializer = createMarkdownSerializer(
getSchema([
RichTextKit.configure({
bulletList: false,
image: false,
listItem: false,
orderedList: false,
strike: false,
}),
]),
)
let markdownSerializer: MarkdownSerializerReturnType

beforeEach(() => {
markdownSerializer = createMarkdownSerializer(
getSchema([
RichTextKit.configure({
bulletList: false,
image: false,
listItem: false,
orderedList: false,
strike: false,
}),
]),
)
})

test('ordered lists Markdown output is correct', () => {
expect(markdownSerializer.serialize(HTML_INPUT_ORDERED_LISTS)).toBe(`1. First item
Expand Down

0 comments on commit 982e7a9

Please sign in to comment.