mirror of
https://github.com/ueberdosis/tiptap.git
synced 2025-01-18 14:13:21 +08:00
test: add tests for Extension.extend()
This commit is contained in:
parent
0c1b77132b
commit
4eee1eca54
134
tests/cypress/integration/core/extendExtensions.spec.ts
Normal file
134
tests/cypress/integration/core/extendExtensions.spec.ts
Normal file
@ -0,0 +1,134 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
import { Extension } from '@tiptap/core/src/Extension'
|
||||
import getExtensionField from '@tiptap/core/src/helpers/getExtensionField'
|
||||
|
||||
describe('extend extensions', () => {
|
||||
it('should define a config', () => {
|
||||
const extension = Extension.create({
|
||||
addAttributes() {
|
||||
return {
|
||||
foo: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const attributes = getExtensionField(extension, 'addAttributes')()
|
||||
|
||||
expect(attributes).to.deep.eq({
|
||||
foo: {},
|
||||
})
|
||||
})
|
||||
|
||||
it('should overwrite a config', () => {
|
||||
const extension = Extension
|
||||
.create({
|
||||
addAttributes() {
|
||||
return {
|
||||
foo: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
.extend({
|
||||
addAttributes() {
|
||||
return {
|
||||
bar: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const attributes = getExtensionField(extension, 'addAttributes')()
|
||||
|
||||
expect(attributes).to.deep.eq({
|
||||
bar: {},
|
||||
})
|
||||
})
|
||||
|
||||
it('should merge configs', () => {
|
||||
const extension = Extension
|
||||
.create({
|
||||
addAttributes() {
|
||||
return {
|
||||
foo: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
.extend({
|
||||
addAttributes() {
|
||||
return {
|
||||
...this.parent?.(),
|
||||
bar: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const attributes = getExtensionField(extension, 'addAttributes')()
|
||||
|
||||
expect(attributes).to.deep.eq({
|
||||
foo: {},
|
||||
bar: {},
|
||||
})
|
||||
})
|
||||
|
||||
it('should merge configs multiple times', () => {
|
||||
const extension = Extension
|
||||
.create({
|
||||
addAttributes() {
|
||||
return {
|
||||
foo: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
.extend({
|
||||
addAttributes() {
|
||||
return {
|
||||
...this.parent?.(),
|
||||
bar: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
.extend({
|
||||
addAttributes() {
|
||||
return {
|
||||
...this.parent?.(),
|
||||
baz: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const attributes = getExtensionField(extension, 'addAttributes')()
|
||||
|
||||
expect(attributes).to.deep.eq({
|
||||
foo: {},
|
||||
bar: {},
|
||||
baz: {},
|
||||
})
|
||||
})
|
||||
|
||||
it('should merge configs without direct parent configuration', () => {
|
||||
const extension = Extension
|
||||
.create({
|
||||
addAttributes() {
|
||||
return {
|
||||
foo: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
.extend()
|
||||
.extend({
|
||||
addAttributes() {
|
||||
return {
|
||||
...this.parent?.(),
|
||||
bar: {},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const attributes = getExtensionField(extension, 'addAttributes')()
|
||||
|
||||
expect(attributes).to.deep.eq({
|
||||
foo: {},
|
||||
bar: {},
|
||||
})
|
||||
})
|
||||
})
|
Loading…
Reference in New Issue
Block a user