Flip test order
This commit is contained in:
+50
-50
@@ -297,6 +297,56 @@ describe('ExtensionSidebarProvider', () => {
|
||||
expect(screen.getByTestId('is-open')).toHaveTextContent('false');
|
||||
});
|
||||
|
||||
it('should toggle sidebar closed when receiving ToggleExtensionSidebarEvent for currently open component', () => {
|
||||
const componentId = getComponentIdFromComponentMeta(mockPluginMeta.pluginId, mockComponent);
|
||||
|
||||
const TestComponentWithProps = () => {
|
||||
const context = useExtensionSidebarContext();
|
||||
return (
|
||||
<div>
|
||||
<div data-testid="is-open">{context.isOpen.toString()}</div>
|
||||
<div data-testid="docked-component-id">{context.dockedComponentId || 'undefined'}</div>
|
||||
<button onClick={() => context.setDockedComponentId(componentId)}>Open Sidebar</button>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
render(
|
||||
<ExtensionSidebarContextProvider>
|
||||
<TestComponentWithProps />
|
||||
</ExtensionSidebarContextProvider>
|
||||
);
|
||||
|
||||
// First open the sidebar manually
|
||||
act(() => {
|
||||
screen.getByText('Open Sidebar').click();
|
||||
});
|
||||
|
||||
expect(screen.getByTestId('is-open')).toHaveTextContent('true');
|
||||
expect(screen.getByTestId('docked-component-id')).toHaveTextContent(componentId);
|
||||
|
||||
act(() => {
|
||||
// Find the ToggleExtensionSidebarEvent subscriber
|
||||
const toggleEventSubscriberCall = subscribeSpy.mock.calls
|
||||
.slice()
|
||||
.reverse()
|
||||
.find((call) => call[0] === ToggleExtensionSidebarEvent);
|
||||
expect(toggleEventSubscriberCall).toBeDefined();
|
||||
const [, subscriberFn] = toggleEventSubscriberCall!;
|
||||
|
||||
// Call the toggle event handler with the same component
|
||||
subscriberFn(
|
||||
new ToggleExtensionSidebarEvent({
|
||||
pluginId: mockPluginMeta.pluginId,
|
||||
componentTitle: mockComponent.title,
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
expect(screen.getByTestId('is-open')).toHaveTextContent('false');
|
||||
expect(screen.getByTestId('docked-component-id')).toHaveTextContent('undefined');
|
||||
});
|
||||
|
||||
it('should close sidebar when receiving a CloseExtensionSidebarEvent', () => {
|
||||
const componentId = getComponentIdFromComponentMeta(mockPluginMeta.pluginId, mockComponent);
|
||||
|
||||
@@ -396,56 +446,6 @@ describe('ExtensionSidebarProvider', () => {
|
||||
expect(screen.getByTestId('docked-component-id')).toHaveTextContent(expectedComponentId);
|
||||
});
|
||||
|
||||
it('should toggle sidebar closed when receiving ToggleExtensionSidebarEvent for currently open component', () => {
|
||||
const componentId = getComponentIdFromComponentMeta(mockPluginMeta.pluginId, mockComponent);
|
||||
|
||||
const TestComponentWithProps = () => {
|
||||
const context = useExtensionSidebarContext();
|
||||
return (
|
||||
<div>
|
||||
<div data-testid="is-open">{context.isOpen.toString()}</div>
|
||||
<div data-testid="docked-component-id">{context.dockedComponentId || 'undefined'}</div>
|
||||
<button onClick={() => context.setDockedComponentId(componentId)}>Open Sidebar</button>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
render(
|
||||
<ExtensionSidebarContextProvider>
|
||||
<TestComponentWithProps />
|
||||
</ExtensionSidebarContextProvider>
|
||||
);
|
||||
|
||||
// First open the sidebar manually
|
||||
act(() => {
|
||||
screen.getByText('Open Sidebar').click();
|
||||
});
|
||||
|
||||
expect(screen.getByTestId('is-open')).toHaveTextContent('true');
|
||||
expect(screen.getByTestId('docked-component-id')).toHaveTextContent(componentId);
|
||||
|
||||
act(() => {
|
||||
// Find the ToggleExtensionSidebarEvent subscriber
|
||||
const toggleEventSubscriberCall = subscribeSpy.mock.calls
|
||||
.slice()
|
||||
.reverse()
|
||||
.find((call) => call[0] === ToggleExtensionSidebarEvent);
|
||||
expect(toggleEventSubscriberCall).toBeDefined();
|
||||
const [, subscriberFn] = toggleEventSubscriberCall!;
|
||||
|
||||
// Call the toggle event handler with the same component
|
||||
subscriberFn(
|
||||
new ToggleExtensionSidebarEvent({
|
||||
pluginId: mockPluginMeta.pluginId,
|
||||
componentTitle: mockComponent.title,
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
expect(screen.getByTestId('is-open')).toHaveTextContent('false');
|
||||
expect(screen.getByTestId('docked-component-id')).toHaveTextContent('undefined');
|
||||
});
|
||||
|
||||
it('should toggle to different component when receiving ToggleExtensionSidebarEvent for different component', async () => {
|
||||
const componentId = getComponentIdFromComponentMeta(mockPluginMeta.pluginId, mockComponent);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user