mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-19 22:09:37 +00:00
## Summary When the node library is open and you click on the node toolbar info button, this causes the node library info panel & right panel node info to show the same details. ## Changes - Extract useNodeHelpContent composable so NodeHelpContent fetches its own content, allowing multiple panels to show help independently - Remove sync behavior from NodeHelpPage that caused left sidebar to change when selecting different graph nodes since we want to prioritise right panel for this behavior - Add telemetry tracking for node library help button to identify how frequently this is used ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8110-Decouple-node-help-between-sidebar-and-right-panel-2ea6d73d365081a9b3afd25aa51b34bd) by [Unito](https://www.unito.io)
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import { mount } from '@vue/test-utils'
|
|
import { createPinia, setActivePinia } from 'pinia'
|
|
import PrimeVue from 'primevue/config'
|
|
import Tooltip from 'primevue/tooltip'
|
|
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
import { createI18n } from 'vue-i18n'
|
|
|
|
import InfoButton from '@/components/graph/selectionToolbox/InfoButton.vue'
|
|
import Button from '@/components/ui/button/Button.vue'
|
|
|
|
const { openPanelMock } = vi.hoisted(() => ({
|
|
openPanelMock: vi.fn()
|
|
}))
|
|
|
|
vi.mock('@/stores/workspace/rightSidePanelStore', () => ({
|
|
useRightSidePanelStore: () => ({
|
|
openPanel: openPanelMock
|
|
})
|
|
}))
|
|
|
|
describe('InfoButton', () => {
|
|
const i18n = createI18n({
|
|
legacy: false,
|
|
locale: 'en',
|
|
messages: {
|
|
en: {
|
|
g: {
|
|
info: 'Node Info'
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|
|
beforeEach(() => {
|
|
setActivePinia(createPinia())
|
|
vi.clearAllMocks()
|
|
})
|
|
|
|
const mountComponent = () => {
|
|
return mount(InfoButton, {
|
|
global: {
|
|
plugins: [i18n, PrimeVue],
|
|
directives: { tooltip: Tooltip },
|
|
components: { Button }
|
|
}
|
|
})
|
|
}
|
|
|
|
it('should open the info panel on click', async () => {
|
|
const wrapper = mountComponent()
|
|
const button = wrapper.find('[data-testid="info-button"]')
|
|
await button.trigger('click')
|
|
expect(openPanelMock).toHaveBeenCalledWith('info')
|
|
})
|
|
})
|