fix: dockview panel setTitle

This commit is contained in:
mathuo 2023-02-22 11:19:37 +07:00
parent b02087d222
commit eb5006fc03
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
2 changed files with 18 additions and 34 deletions

View File

@ -1,46 +1,30 @@
import { DockviewPanelApiImpl, TitleEvent } from '../../api/dockviewPanelApi'; import { DockviewPanelApiImpl, TitleEvent } from '../../api/dockviewPanelApi';
import { DockviewComponent } from '../../dockview/dockviewComponent'; import { DockviewComponent } from '../../dockview/dockviewComponent';
import { IDockviewPanel } from '../../dockview/dockviewPanel'; import { DockviewPanel, IDockviewPanel } from '../../dockview/dockviewPanel';
import { GroupPanel } from '../../groupview/groupviewPanel'; import { GroupPanel } from '../../groupview/groupviewPanel';
describe('groupPanelApi', () => { describe('groupPanelApi', () => {
test('title', () => { test('title', () => {
const groupPanel: Partial<IDockviewPanel> = { const panelMock = jest.fn<DockviewPanel, []>(() => {
id: 'test_id', return {
title: 'test_title', update: jest.fn(),
}; } as any;
});
const accessor: Partial<DockviewComponent> = { const groupMock = jest.fn<GroupPanel, []>(() => {
onDidAddPanel: jest.fn(), return {} as any;
onDidRemovePanel: jest.fn(),
options: {},
};
const groupViewPanel = new GroupPanel(
<DockviewComponent>accessor,
'',
{}
);
const cut = new DockviewPanelApiImpl(
<IDockviewPanel>groupPanel,
<GroupPanel>groupViewPanel
);
let events: TitleEvent[] = [];
const disposable = cut.onDidTitleChange((event) => {
events.push(event);
}); });
expect(events.length).toBe(0); const panel = new panelMock();
expect(cut.title).toBe('test_title'); const group = new groupMock();
cut.setTitle('test_title_2'); const cut = new DockviewPanelApiImpl(panel, group);
expect(events.length).toBe(1);
expect(events[0]).toEqual({ title: 'test_title_2' });
expect(cut.title).toBe('test_title'); // title should remain unchanged
disposable.dispose(); cut.setTitle('test_title');
expect(panel.update).toBeCalledTimes(1);
expect(panel.update).toBeCalledWith({
params: { title: 'test_title' },
});
}); });
test('onDidGroupChange', () => { test('onDidGroupChange', () => {

View File

@ -85,7 +85,7 @@ export class DockviewPanelApiImpl
} }
public setTitle(title: string): void { public setTitle(title: string): void {
this._onDidTitleChange.fire({ title }); this.panel.update({ params: { title } });
} }
public close(): void { public close(): void {