mirror of
https://github.com/mathuo/dockview
synced 2025-08-14 05:06:02 +00:00
chore: tests
This commit is contained in:
parent
725f364186
commit
edbeeffd60
@ -588,4 +588,34 @@ describe('dockviewComponent', () => {
|
||||
expect(panel3!.api.isGroupActive).toBeFalsy();
|
||||
expect(panel3!.api.group.isActive).toBeFalsy();
|
||||
});
|
||||
|
||||
test('toJSON shouldnt fire any layout events', () => {
|
||||
dockview.layout(1000, 1000);
|
||||
|
||||
dockview.addPanel({
|
||||
id: 'panel1',
|
||||
component: 'default',
|
||||
});
|
||||
dockview.addPanel({
|
||||
id: 'panel2',
|
||||
component: 'default',
|
||||
});
|
||||
dockview.addPanel({
|
||||
id: 'panel3',
|
||||
component: 'default',
|
||||
});
|
||||
dockview.addPanel({
|
||||
id: 'panel4',
|
||||
component: 'default',
|
||||
});
|
||||
|
||||
const disposable = dockview.onDidLayoutChange(() => {
|
||||
fail('onDidLayoutChange shouldnt have been called');
|
||||
});
|
||||
|
||||
const result = dockview.toJSON();
|
||||
expect(result).toBeTruthy();
|
||||
|
||||
disposable.dispose();
|
||||
});
|
||||
});
|
||||
|
@ -246,4 +246,34 @@ describe('gridview', () => {
|
||||
activePanel: 'panel_1',
|
||||
});
|
||||
});
|
||||
|
||||
test('toJSON shouldnt fire any layout events', () => {
|
||||
gridview.layout(1000, 1000);
|
||||
|
||||
gridview.addPanel({
|
||||
id: 'panel1',
|
||||
component: 'default',
|
||||
});
|
||||
gridview.addPanel({
|
||||
id: 'panel2',
|
||||
component: 'default',
|
||||
});
|
||||
gridview.addPanel({
|
||||
id: 'panel3',
|
||||
component: 'default',
|
||||
});
|
||||
gridview.addPanel({
|
||||
id: 'panel4',
|
||||
component: 'default',
|
||||
});
|
||||
|
||||
const disposable = gridview.onDidLayoutChange(() => {
|
||||
fail('onDidLayoutChange shouldnt have been called');
|
||||
});
|
||||
|
||||
const result = gridview.toJSON();
|
||||
expect(result).toBeTruthy();
|
||||
|
||||
disposable.dispose();
|
||||
});
|
||||
});
|
||||
|
@ -247,4 +247,33 @@ describe('componentPaneview', () => {
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
test('toJSON shouldnt fire any layout events', () => {
|
||||
const paneview = new PaneviewComponent(container, {
|
||||
components: {
|
||||
testPanel: TestPanel,
|
||||
},
|
||||
});
|
||||
paneview.layout(1000, 1000);
|
||||
|
||||
paneview.addPanel({
|
||||
id: 'panel1',
|
||||
component: 'testPanel',
|
||||
title: 'Panel 1',
|
||||
});
|
||||
paneview.addPanel({
|
||||
id: 'panel2',
|
||||
component: 'testPanel',
|
||||
title: 'Panel 2',
|
||||
});
|
||||
|
||||
const disposable = paneview.onDidLayoutChange(() => {
|
||||
fail('onDidLayoutChange shouldnt have been called');
|
||||
});
|
||||
|
||||
const result = paneview.toJSON();
|
||||
expect(result).toBeTruthy();
|
||||
|
||||
disposable.dispose();
|
||||
});
|
||||
});
|
||||
|
@ -328,4 +328,67 @@ describe('componentSplitview', () => {
|
||||
activeView: 'panel1',
|
||||
});
|
||||
});
|
||||
|
||||
test('toJSON shouldnt fire any layout events', () => {
|
||||
const splitview = new SplitviewComponent(container, {
|
||||
orientation: Orientation.HORIZONTAL,
|
||||
components: {
|
||||
testPanel: TestPanel,
|
||||
},
|
||||
});
|
||||
|
||||
splitview.layout(1000, 1000);
|
||||
|
||||
splitview.addPanel({
|
||||
id: 'panel1',
|
||||
component: 'testPanel',
|
||||
});
|
||||
splitview.addPanel({
|
||||
id: 'panel2',
|
||||
component: 'testPanel',
|
||||
});
|
||||
|
||||
const disposable = splitview.onDidLayoutChange(() => {
|
||||
fail('onDidLayoutChange shouldnt have been called');
|
||||
});
|
||||
|
||||
const result = splitview.toJSON();
|
||||
expect(result).toBeTruthy();
|
||||
|
||||
disposable.dispose();
|
||||
});
|
||||
|
||||
class EventListenerTracker {
|
||||
private events = new Map<string, Set<any>>();
|
||||
|
||||
get size() {
|
||||
return this.events.size;
|
||||
}
|
||||
|
||||
constructor() {
|
||||
const originalAddEventListener = document.addEventListener;
|
||||
const originalRemoveEventListener = document.removeEventListener;
|
||||
|
||||
document.addEventListener = jest.fn((event, callback, options) => {
|
||||
if (!this.events.has(event)) {
|
||||
this.events.set(event, new Set<any>());
|
||||
}
|
||||
this.events.get(event).add(callback);
|
||||
originalAddEventListener(event, callback, options);
|
||||
});
|
||||
|
||||
document.removeEventListener = jest.fn(
|
||||
(event, callback, options) => {
|
||||
if (this.events.has(event)) {
|
||||
this.events.get(event).delete(callback);
|
||||
if (this.events.get(event).size === 0) {
|
||||
this.events.delete(event);
|
||||
}
|
||||
}
|
||||
|
||||
originalRemoveEventListener(event, callback, options);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -33,7 +33,12 @@ import { GroupviewPanel } from '../groupview/groupviewPanel';
|
||||
import { Event } from '../events';
|
||||
|
||||
export interface CommonApi {
|
||||
readonly height: number;
|
||||
readonly width: number;
|
||||
readonly onDidLayoutChange: Event<void>;
|
||||
focus(): void;
|
||||
layout(width: number, height: number): void;
|
||||
resizeToFit(): void;
|
||||
}
|
||||
|
||||
export class SplitviewApi implements CommonApi {
|
||||
|
Loading…
x
Reference in New Issue
Block a user