2021-04-17 04:53:48 +08:00
|
|
|
/// <reference types="cypress" />
|
|
|
|
|
2022-11-24 23:06:42 +08:00
|
|
|
import { Extension, getExtensionField } from '@tiptap/core'
|
2021-04-17 04:53:48 +08:00
|
|
|
|
|
|
|
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: {},
|
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|