Add data-testid=document-block plus block id on every wrapper so pure-mode editors stay addressable without changing visuals. Co-authored-by: Cursor <cursoragent@cursor.com>
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { describe, it } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import {
|
|
DOCUMENT_BLOCK_TESTID,
|
|
documentBlockDomAttrs,
|
|
} from './documentBlockDom';
|
|
|
|
describe('documentBlockDomAttrs', () => {
|
|
it('marks a real DocumentBlock in pure mode without overlay kind', () => {
|
|
const attrs = documentBlockDomAttrs({ id: 'blk_intake_p1' });
|
|
assert.equal(attrs['data-testid'], DOCUMENT_BLOCK_TESTID);
|
|
assert.equal(attrs['data-testid'], 'document-block');
|
|
assert.equal(attrs['data-document-block'], 'blk_intake_p1');
|
|
assert.equal(attrs['data-block-id'], 'blk_intake_p1');
|
|
assert.equal('data-overlay-kind' in attrs, false);
|
|
});
|
|
|
|
it('keeps the same stable attrs when overlay is later attached separately', () => {
|
|
const pure = documentBlockDomAttrs({ id: 'blk_h1' });
|
|
const withOverlay = {
|
|
...documentBlockDomAttrs({ id: 'blk_h1' }),
|
|
'data-overlay-kind': 'modify',
|
|
};
|
|
assert.equal(pure['data-document-block'], withOverlay['data-document-block']);
|
|
assert.equal(pure['data-testid'], withOverlay['data-testid']);
|
|
assert.notEqual(Object.prototype.hasOwnProperty.call(pure, 'data-overlay-kind'), true);
|
|
});
|
|
});
|