mirror of
https://github.com/codex-team/editor.js
synced 2024-06-11 02:12:31 +02:00
07b1ce2aca
* Add new popover class * Add flipper * confirmation * confirmation * Add confirmation support * Add search * Add toggle group support and update popover tests * Add custom content support * Fix scroll issue * Add mobile version * Integration * Fix animation * Cleanup * Fix popover position for narrow mode * Fix tests * Update version and changelog * Rename css classes * Move files * Stop using PopoverItem from outside of popover context * Fix jsdoc * Move error animation to popover item * Update css variables * Update docs/CHANGELOG.md Co-authored-by: Ilya Maroz <37909603+ilyamore88@users.noreply.github.com> * Update src/components/block-tunes/block-tune-move-down.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Update src/components/block-tunes/block-tune-move-up.ts Co-authored-by: Peter Savchenko <specc.dev@gmail.com> * Fixes * Fix imports * Fix toolbox close event * Move search-input file * Fix comment * Rename method * Cleanup * Remove onFlip callback from popover item * Rename * Fix removing event listener * Move popover animations to popover.css file * Cleanup styles * Fix jsdoc * Fix confirmation chains * Close toolbox oly when it's open * Change activation error animation * Update version and changelog * Fix overlay * Update icon border-radius on mobile * Disable item text select * Update changelog * Update yarn.lock * Add rc postfix to version --------- Co-authored-by: Ilya Maroz <37909603+ilyamore88@users.noreply.github.com> Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
134 lines
2.7 KiB
TypeScript
134 lines
2.7 KiB
TypeScript
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
import Header from '@editorjs/header';
|
|
import { nanoid } from 'nanoid';
|
|
|
|
describe('Block ids', () => {
|
|
beforeEach(function () {
|
|
cy.createEditor({
|
|
tools: {
|
|
header: Header,
|
|
},
|
|
}).as('editorInstance');
|
|
});
|
|
|
|
afterEach(function () {
|
|
if (this.editorInstance) {
|
|
this.editorInstance.destroy();
|
|
}
|
|
});
|
|
|
|
it('Should generate unique block ids for new blocks', () => {
|
|
cy.get('[data-cy=editorjs]')
|
|
.get('div.ce-block')
|
|
.click()
|
|
.type('First block ')
|
|
.type('{enter}')
|
|
.get('div.ce-block')
|
|
.last()
|
|
.type('Second block ')
|
|
.type('{enter}');
|
|
|
|
cy.get('[data-cy=editorjs]')
|
|
.get('div.ce-toolbar__plus')
|
|
.click();
|
|
|
|
cy.get('[data-cy=editorjs]')
|
|
.get('div.ce-popover-item[data-item-name=header]')
|
|
.click();
|
|
|
|
cy.get('[data-cy=editorjs]')
|
|
.get('div.ce-block')
|
|
.last()
|
|
.click()
|
|
.type('Header');
|
|
|
|
cy.get('@editorInstance')
|
|
.then(async (editor: any) => {
|
|
const data = await editor.save();
|
|
|
|
data.blocks.forEach(block => {
|
|
expect(typeof block.id).to.eq('string');
|
|
});
|
|
});
|
|
});
|
|
|
|
it('should preserve passed ids', () => {
|
|
const blocks = [
|
|
{
|
|
id: nanoid(),
|
|
type: 'paragraph',
|
|
data: {
|
|
text: 'First block',
|
|
},
|
|
},
|
|
{
|
|
id: nanoid(),
|
|
type: 'paragraph',
|
|
data: {
|
|
text: 'Second block',
|
|
},
|
|
},
|
|
];
|
|
|
|
cy.get('@editorInstance')
|
|
.render({
|
|
blocks,
|
|
});
|
|
|
|
cy.get('[data-cy=editorjs]')
|
|
.get('div.ce-block')
|
|
.first()
|
|
.click()
|
|
.type('{movetoend} Some more text');
|
|
|
|
cy.get('@editorInstance')
|
|
.then(async (editor: any) => {
|
|
const data = await editor.save();
|
|
|
|
data.blocks.forEach((block, index) => {
|
|
expect(block.id).to.eq(blocks[index].id);
|
|
});
|
|
});
|
|
});
|
|
|
|
it('should preserve passed ids if blocks were added', () => {
|
|
const blocks = [
|
|
{
|
|
id: nanoid(),
|
|
type: 'paragraph',
|
|
data: {
|
|
text: 'First block',
|
|
},
|
|
},
|
|
{
|
|
id: nanoid(),
|
|
type: 'paragraph',
|
|
data: {
|
|
text: 'Second block',
|
|
},
|
|
},
|
|
];
|
|
|
|
cy.get('@editorInstance')
|
|
.render({
|
|
blocks,
|
|
});
|
|
|
|
cy.get('[data-cy=editorjs]')
|
|
.get('div.ce-block')
|
|
.first()
|
|
.click()
|
|
.type('{enter}')
|
|
.next()
|
|
.type('Middle block');
|
|
|
|
cy.get('@editorInstance')
|
|
.then(async (editor: any) => {
|
|
const data = await editor.save();
|
|
|
|
expect(data.blocks[0].id).to.eq(blocks[0].id);
|
|
expect(data.blocks[2].id).to.eq(blocks[1].id);
|
|
});
|
|
});
|
|
});
|