hedgedoc/frontend/src/components/markdown-renderer/extensions/base/code-block-markdown-extension/find-language-by-code-block-name.test.ts
Tilman Vatteroth e390c0dd15 fix(frontend): reformat source files
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2022-12-04 20:59:46 +01:00

36 lines
1.6 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { findLanguageByCodeBlockName } from './find-language-by-code-block-name'
import type { LanguageDescription } from '@codemirror/language'
import { Mock } from 'ts-mockery'
describe('filter language name', () => {
const mockedLanguage1 = Mock.of<LanguageDescription>({ name: 'Mocky', alias: ['mocky'] })
const mockedLanguage2 = Mock.of<LanguageDescription>({ name: 'Blocky', alias: ['blocky'] })
const mockedLanguage3 = Mock.of<LanguageDescription>({ name: 'Rocky', alias: ['rocky'] })
const mockedLanguage4 = Mock.of<LanguageDescription>({ name: 'Zocky', alias: ['zocky'] })
const mockedLanguages = [mockedLanguage1, mockedLanguage2, mockedLanguage3, mockedLanguage4]
it('should detect just the name of a language', () => {
expect(findLanguageByCodeBlockName(mockedLanguages, 'Mocky')).toBe(mockedLanguage1)
})
it('should detect the name of a language with parameters', () => {
expect(findLanguageByCodeBlockName(mockedLanguages, 'Blocky!!!')).toBe(mockedLanguage2)
})
it('should detect just the alias of a language', () => {
expect(findLanguageByCodeBlockName(mockedLanguages, 'rocky')).toBe(mockedLanguage3)
})
it('should detect the alias of a language with parameters', () => {
expect(findLanguageByCodeBlockName(mockedLanguages, 'zocky!!!')).toBe(mockedLanguage4)
})
it("shouldn't return a language if no match", () => {
expect(findLanguageByCodeBlockName(mockedLanguages, 'Docky')).toBe(null)
})
})