mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-19 05:37:51 +08:00
f387ad3dd4
* chore:(core): migrate to tsup * chore: migrate blockquote and bold to tsup * chore: migrated bubble-menu and bullet-list to tsup * chore: migrated more packages to tsup * chore: migrate code and character extensions to tsup * chore: update package.json to simplify build for all packages * chore: move all packages to tsup as a build process * chore: change ci build task * feat(pm): add prosemirror meta package * rfix: resolve issues with build paths & export mappings * docs: update documentation to include notes for @tiptap/pm * chore(pm): update tsconfig * chore(packages): update packages * fix(pm): add package export infos & fix dependencies * chore(general): start moving to pm package as deps * chore: move to tiptap pm package internally * fix(demos): fix demos working with new pm package * fix(tables): fix tables package * fix(tables): fix tables package * chore(demos): pinned typescript version * chore: remove unnecessary tsconfig * chore: fix netlify build * fix(demos): fix package resolving for pm packages * fix(tests): fix package resolving for pm packages * fix(tests): fix package resolving for pm packages * chore(tests): fix tests not running correctly after pm package * chore(pm): add files to files array * chore: update build workflow * chore(tests): increase timeout time back to 12s * chore(docs): update docs * chore(docs): update installation guides & pm information to docs * chore(docs): add link to prosemirror docs * fix(vue-3): add missing build step * chore(docs): comment out cdn link * chore(docs): remove semicolons from docs * chore(docs): remove unnecessary installation note * chore(docs): remove unnecessary installation note
69 lines
1.5 KiB
TypeScript
69 lines
1.5 KiB
TypeScript
/// <reference types="cypress" />
|
|
|
|
import { mergeAttributes } from '@tiptap/core'
|
|
|
|
describe('mergeAttributes', () => {
|
|
it('should merge two objects', () => {
|
|
const value = mergeAttributes({ id: 1 }, { class: 'foo' })
|
|
|
|
expect(value).to.deep.eq({
|
|
id: 1,
|
|
class: 'foo',
|
|
})
|
|
})
|
|
|
|
it('should merge multiple objects', () => {
|
|
const value = mergeAttributes({ id: 1 }, { class: 'foo' }, { title: 'bar' })
|
|
|
|
expect(value).to.deep.eq({
|
|
id: 1,
|
|
class: 'foo',
|
|
title: 'bar',
|
|
})
|
|
})
|
|
|
|
it('should overwrite values', () => {
|
|
const value = mergeAttributes({ id: 1 }, { id: 2 })
|
|
|
|
expect(value).to.deep.eq({
|
|
id: 2,
|
|
})
|
|
})
|
|
|
|
it('should merge classes', () => {
|
|
const value = mergeAttributes({ class: 'foo' }, { class: 'bar' })
|
|
|
|
expect(value).to.deep.eq({
|
|
class: 'foo bar',
|
|
})
|
|
})
|
|
|
|
it('should merge styles', () => {
|
|
const value = mergeAttributes({ style: 'color: red' }, { style: 'background: green' })
|
|
|
|
expect(value).to.deep.eq({
|
|
style: 'color: red; background: green',
|
|
})
|
|
})
|
|
|
|
it('should merge classes and styles', () => {
|
|
const value = mergeAttributes(
|
|
{ class: 'foo', style: 'color: red' },
|
|
{ class: 'bar', style: 'background: green' },
|
|
)
|
|
|
|
expect(value).to.deep.eq({
|
|
class: 'foo bar',
|
|
style: 'color: red; background: green',
|
|
})
|
|
})
|
|
|
|
it('should ignore falsy values', () => {
|
|
const value = mergeAttributes(undefined, { class: 'foo' })
|
|
|
|
expect(value).to.deep.eq({
|
|
class: 'foo',
|
|
})
|
|
})
|
|
})
|