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 { DockviewComponent } from '../../dockview/dockviewComponent';
import { IDockviewPanel } from '../../dockview/dockviewPanel';
import { DockviewPanel, IDockviewPanel } from '../../dockview/dockviewPanel';
import { GroupPanel } from '../../groupview/groupviewPanel';
describe('groupPanelApi', () => {
test('title', () => {
const groupPanel: Partial<IDockviewPanel> = {
id: 'test_id',
title: 'test_title',
};
const accessor: Partial<DockviewComponent> = {
onDidAddPanel: jest.fn(),
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);
const panelMock = jest.fn<DockviewPanel, []>(() => {
return {
update: jest.fn(),
} as any;
});
const groupMock = jest.fn<GroupPanel, []>(() => {
return {} as any;
});
expect(events.length).toBe(0);
expect(cut.title).toBe('test_title');
const panel = new panelMock();
const group = new groupMock();
cut.setTitle('test_title_2');
expect(events.length).toBe(1);
expect(events[0]).toEqual({ title: 'test_title_2' });
expect(cut.title).toBe('test_title'); // title should remain unchanged
const cut = new DockviewPanelApiImpl(panel, group);
disposable.dispose();
cut.setTitle('test_title');
expect(panel.update).toBeCalledTimes(1);
expect(panel.update).toBeCalledWith({
params: { title: 'test_title' },
});
});
test('onDidGroupChange', () => {

View File

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