mirror of
https://github.com/zadam/trilium.git
synced 2026-02-22 05:34:27 +01:00
add unit test
This commit is contained in:
parent
6bd80d3a16
commit
4ecdb097b3
@ -16,7 +16,17 @@
|
|||||||
"ckeditor5-premium-features": "47.4.0"
|
"ckeditor5-premium-features": "47.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@smithy/middleware-retry": "4.4.27",
|
||||||
"@smithy/middleware-retry": "4.4.29",
|
"@smithy/middleware-retry": "4.4.29",
|
||||||
"@types/jquery": "3.5.33"
|
"@types/jquery": "3.5.33",
|
||||||
|
"@vitest/browser": "4.0.17",
|
||||||
|
"@vitest/coverage-istanbul": "4.0.17",
|
||||||
|
"vite-plugin-svgo": "2.0.0",
|
||||||
|
"vitest": "4.0.17",
|
||||||
|
"webdriverio": "9.23.0"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "vitest",
|
||||||
|
"test:debug": "vitest --inspect-brk --no-file-parallelism --browser.headless=false"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
65
packages/ckeditor5/tests/disable_mention_in_codeblock.ts
Normal file
65
packages/ckeditor5/tests/disable_mention_in_codeblock.ts
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
import { ClassicEditor, CodeBlock, Mention } from 'ckeditor5';
|
||||||
|
import DisableMentionInCodeBlock from '../src/plugins/disable_mention_in_codeblock.js';
|
||||||
|
import { describe, beforeEach, it, afterEach, expect } from "vitest";
|
||||||
|
|
||||||
|
describe( 'DisableMentionInCodeBlock', () => {
|
||||||
|
let editorElement: HTMLDivElement, editor: ClassicEditor;
|
||||||
|
|
||||||
|
beforeEach( async () => {
|
||||||
|
editorElement = document.createElement( 'div' );
|
||||||
|
document.body.appendChild( editorElement );
|
||||||
|
|
||||||
|
return ClassicEditor
|
||||||
|
.create( editorElement, {
|
||||||
|
plugins: [ CodeBlock, Mention, DisableMentionInCodeBlock ],
|
||||||
|
licenseKey: "GPL"
|
||||||
|
} )
|
||||||
|
.then( newEditor => {
|
||||||
|
editor = newEditor;
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
|
afterEach( () => {
|
||||||
|
editorElement.remove();
|
||||||
|
|
||||||
|
return editor.destroy();
|
||||||
|
} );
|
||||||
|
|
||||||
|
it( 'should be loaded', () => {
|
||||||
|
expect( editor.plugins.get( DisableMentionInCodeBlock ) ).to.instanceOf( DisableMentionInCodeBlock );
|
||||||
|
} );
|
||||||
|
|
||||||
|
it( 'has proper name', () => {
|
||||||
|
expect( DisableMentionInCodeBlock.pluginName ).to.equal( 'DisableMentionInCodeBlock' );
|
||||||
|
} );
|
||||||
|
|
||||||
|
it( 'should prevent mention attribute inside code blocks', () => {
|
||||||
|
const schema = editor.model.schema;
|
||||||
|
|
||||||
|
// Test that mention attribute is disallowed in code block context
|
||||||
|
const context = schema.createContext( [ 'codeBlock', '$text' ] );
|
||||||
|
const isAllowed = schema.checkAttribute( context, 'mention' );
|
||||||
|
|
||||||
|
expect( isAllowed ).to.be.false;
|
||||||
|
} );
|
||||||
|
|
||||||
|
it( 'should allow mention attribute outside code blocks', () => {
|
||||||
|
const schema = editor.model.schema;
|
||||||
|
|
||||||
|
// Test that mention attribute is still allowed in regular paragraphs
|
||||||
|
const context = schema.createContext( [ 'paragraph', '$text' ] );
|
||||||
|
const isAllowed = schema.checkAttribute( context, 'mention' );
|
||||||
|
|
||||||
|
expect( isAllowed ).to.be.true;
|
||||||
|
} );
|
||||||
|
|
||||||
|
it( 'should allow mention attribute in list items', () => {
|
||||||
|
const schema = editor.model.schema;
|
||||||
|
|
||||||
|
// Test that mention attribute is still allowed in list items
|
||||||
|
const context = schema.createContext( [ 'listItem', '$text' ] );
|
||||||
|
const isAllowed = schema.checkAttribute( context, 'mention' );
|
||||||
|
|
||||||
|
expect( isAllowed ).to.be.true;
|
||||||
|
} );
|
||||||
|
} );
|
||||||
43
packages/ckeditor5/vitest.config.ts
Normal file
43
packages/ckeditor5/vitest.config.ts
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/**
|
||||||
|
* @license Copyright (c) 2023-2024, CKSource Holding sp. z o.o. All rights reserved.
|
||||||
|
* For licensing, see LICENSE.md.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { defineConfig } from 'vitest/config';
|
||||||
|
import svg from 'vite-plugin-svgo';
|
||||||
|
import { webdriverio } from "@vitest/browser-webdriverio";
|
||||||
|
|
||||||
|
export default defineConfig( {
|
||||||
|
plugins: [
|
||||||
|
svg()
|
||||||
|
],
|
||||||
|
test: {
|
||||||
|
browser: {
|
||||||
|
enabled: true,
|
||||||
|
provider: webdriverio(),
|
||||||
|
headless: true,
|
||||||
|
ui: false,
|
||||||
|
instances: [ { browser: 'chrome' } ]
|
||||||
|
},
|
||||||
|
include: [
|
||||||
|
'tests/**/*.[jt]s'
|
||||||
|
],
|
||||||
|
exclude: [
|
||||||
|
'tests/setup.ts'
|
||||||
|
],
|
||||||
|
globals: true,
|
||||||
|
watch: false,
|
||||||
|
coverage: {
|
||||||
|
thresholds: {
|
||||||
|
lines: 100,
|
||||||
|
functions: 100,
|
||||||
|
branches: 100,
|
||||||
|
statements: 100
|
||||||
|
},
|
||||||
|
provider: 'istanbul',
|
||||||
|
include: [
|
||||||
|
'src'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
578
pnpm-lock.yaml
generated
578
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user