diff --git a/src/common/InputHandler.test.ts b/src/common/InputHandler.test.ts index 20544e9d4..f9da81a25 100644 --- a/src/common/InputHandler.test.ts +++ b/src/common/InputHandler.test.ts @@ -11,7 +11,7 @@ import { CellData } from 'common/buffer/CellData'; import { Attributes, BgFlags, UnderlineStyle } from 'common/buffer/Constants'; import { AttributeData, ExtendedAttrs } from 'common/buffer/AttributeData'; import { Params } from 'common/parser/Params'; -import { MockCoreService, MockBufferService, MockOptionsService, MockLogService, MockMouseStateService, MockCharsetService, MockUnicodeService, MockOscLinkService } from 'common/TestUtils.test'; +import { MockCoreService, MockBufferService, MockOptionsService, MockLogService, MockMouseStateService, MockCharsetService, MockUnicodeService, MockOscLinkService, extendedAttributes } from 'common/TestUtils.test'; import { IBufferService, ICoreService, type IOscLinkService } from 'common/services/Services'; import { DEFAULT_OPTIONS } from 'common/services/OptionsService'; import { clone } from 'common/Clone'; @@ -2002,15 +2002,15 @@ describe('InputHandler', () => { // eAttrs in buffer pos 0 and 1 should be the same object assert.equal( - (bufferService.buffer!.lines.get(0)! as any)._extendedAttrs[0], - (bufferService.buffer!.lines.get(0)! as any)._extendedAttrs[1] + extendedAttributes(bufferService.buffer!.lines.get(0)!, 0), + extendedAttributes(bufferService.buffer!.lines.get(0)!, 1) ); // should not have written eAttr for pos 2 in the buffer - assert.equal((bufferService.buffer!.lines.get(0)! as any)._extendedAttrs[2], undefined); + assert.equal(extendedAttributes(bufferService.buffer!.lines.get(0)!, 2), undefined); // eAttrs in buffer pos 1 and pos 3 must be different objs assert.notEqual( - (bufferService.buffer!.lines.get(0)! as any)._extendedAttrs[1], - (bufferService.buffer!.lines.get(0)! as any)._extendedAttrs[3] + extendedAttributes(bufferService.buffer!.lines.get(0)!, 1), + extendedAttributes(bufferService.buffer!.lines.get(0)!, 3) ); }); }); diff --git a/src/common/TestUtils.test.ts b/src/common/TestUtils.test.ts index 0884a4ab4..5940fa659 100644 --- a/src/common/TestUtils.test.ts +++ b/src/common/TestUtils.test.ts @@ -9,7 +9,7 @@ import { clone } from 'common/Clone'; import { DEFAULT_OPTIONS } from 'common/services/OptionsService'; import { IBufferSet, IBuffer } from 'common/buffer/Types'; import { BufferSet } from 'common/buffer/BufferSet'; -import { IDecPrivateModes, ICoreMouseEvent, CoreMouseEventType, ICharset, IModes, IAttributeData, IOscLinkData, IDisposable } from 'common/Types'; +import { IDecPrivateModes, ICoreMouseEvent, CoreMouseEventType, ICharset, IModes, IAttributeData, IOscLinkData, IDisposable, IBufferLine, IExtendedAttrs } from 'common/Types'; import { UnicodeV6 } from 'common/input/UnicodeV6'; import { IDecorationOptions, IDecoration } from '@xterm/xterm'; import { Emitter, type IEvent } from 'common/Event'; @@ -20,6 +20,12 @@ export function createCellData(attr: number, char: string, width: number): CellD return CellData.fromCharData([attr, char, width, char.length === 0 ? 0 : char.charCodeAt(0)]); } +export function extendedAttributes(line: IBufferLine, index: number): IExtendedAttrs | undefined { + const cell = new CellData(); + line.loadCell(index, cell); + return cell.hasExtendedAttrs() !== 0 ? cell.extended : undefined; +} + export const NULL_CELL_DATA = Object.freeze(createCellData(DEFAULT_ATTR, NULL_CELL_CHAR, NULL_CELL_WIDTH)); export class MockBufferService implements IBufferService { diff --git a/src/common/buffer/BufferLine.test.ts b/src/common/buffer/BufferLine.test.ts index b1c554781..dce68ebbf 100644 --- a/src/common/buffer/BufferLine.test.ts +++ b/src/common/buffer/BufferLine.test.ts @@ -5,10 +5,10 @@ import { NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, DEFAULT_ATTR, Content, UnderlineStyle, BgFlags, Attributes, FgFlags } from 'common/buffer/Constants'; import { BufferLine } from 'common/buffer//BufferLine'; import { CellData } from 'common/buffer/CellData'; -import { CharData, IBufferLine, IExtendedAttrs } from '../Types'; +import { CharData, IBufferLine } from '../Types'; import { assert } from 'chai'; import { AttributeData } from 'common/buffer/AttributeData'; -import { createCellData, NULL_CELL_DATA } from 'common/TestUtils.test'; +import { createCellData, NULL_CELL_DATA, extendedAttributes } from 'common/TestUtils.test'; class TestBufferLine extends BufferLine { @@ -25,12 +25,6 @@ class TestBufferLine extends BufferLine { } } -function extendedAttributes(line: IBufferLine, index: number): IExtendedAttrs | undefined { - const cell = new CellData(); - line.loadCell(index, cell); - return cell.hasExtendedAttrs() !== 0 ? cell.extended : undefined; -} - describe('AttributeData', () => { describe('extended attributes', () => { it('hasExtendedAttrs', () => {