mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-29 02:32:18 +00:00
test: add setting to ignore version compatibility toast warnings in e2e tests (#7004)
There's a warning toast shown if the frontend is considered out-of-date (relative to the version in the requirements.txt of comfyanonymous/ComfyUI). As a result, e2e tests run on older release branches (e.g., when backporting or hotfixing) can sometimes trigger the warning which obviously causes visual regression tests to fail. This PR adds a hidden setting to disable the warning and sets it to `true` in the e2e test fixtures. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-7004-test-add-setting-to-ignore-version-compatibility-toast-warnings-in-e2e-tests-2b86d73d3650812d9e07f54a0c86b996) by [Unito](https://www.unito.io)
This commit is contained in:
@@ -1651,7 +1651,10 @@ export const comfyPageFixture = base.extend<{
|
|||||||
// Set tutorial completed to true to avoid loading the tutorial workflow.
|
// Set tutorial completed to true to avoid loading the tutorial workflow.
|
||||||
'Comfy.TutorialCompleted': true,
|
'Comfy.TutorialCompleted': true,
|
||||||
'Comfy.SnapToGrid.GridSize': testComfySnapToGridGridSize,
|
'Comfy.SnapToGrid.GridSize': testComfySnapToGridGridSize,
|
||||||
'Comfy.VueNodes.AutoScaleLayout': false
|
'Comfy.VueNodes.AutoScaleLayout': false,
|
||||||
|
// Disable toast warning about version compatibility, as they may or
|
||||||
|
// may not appear - depending on upstream ComfyUI dependencies
|
||||||
|
'Comfy.VersionCompatibility.DisableWarnings': true
|
||||||
})
|
})
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
|
|||||||
@@ -1117,5 +1117,12 @@ export const CORE_SETTINGS: SettingParams[] = [
|
|||||||
tooltip: 'Use new Asset API for model browsing',
|
tooltip: 'Use new Asset API for model browsing',
|
||||||
defaultValue: isCloud ? true : false,
|
defaultValue: isCloud ? true : false,
|
||||||
experimental: true
|
experimental: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'Comfy.VersionCompatibility.DisableWarnings',
|
||||||
|
name: 'Disable version compatibility warnings',
|
||||||
|
type: 'hidden',
|
||||||
|
defaultValue: false,
|
||||||
|
versionAdded: '1.34.1'
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { gt, valid } from 'semver'
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
import config from '@/config'
|
import config from '@/config'
|
||||||
|
import { useSettingStore } from '@/platform/settings/settingStore'
|
||||||
import { useSystemStatsStore } from '@/stores/systemStatsStore'
|
import { useSystemStatsStore } from '@/stores/systemStatsStore'
|
||||||
|
|
||||||
const DISMISSAL_DURATION_MS = 7 * 24 * 60 * 60 * 1000 // 7 days
|
const DISMISSAL_DURATION_MS = 7 * 24 * 60 * 60 * 1000 // 7 days
|
||||||
@@ -12,6 +13,7 @@ export const useVersionCompatibilityStore = defineStore(
|
|||||||
'versionCompatibility',
|
'versionCompatibility',
|
||||||
() => {
|
() => {
|
||||||
const systemStatsStore = useSystemStatsStore()
|
const systemStatsStore = useSystemStatsStore()
|
||||||
|
const settingStore = useSettingStore()
|
||||||
|
|
||||||
const frontendVersion = computed(() => config.app_version)
|
const frontendVersion = computed(() => config.app_version)
|
||||||
const backendVersion = computed(
|
const backendVersion = computed(
|
||||||
@@ -87,7 +89,10 @@ export const useVersionCompatibilityStore = defineStore(
|
|||||||
})
|
})
|
||||||
|
|
||||||
const shouldShowWarning = computed(() => {
|
const shouldShowWarning = computed(() => {
|
||||||
return hasVersionMismatch.value && !isDismissed.value
|
const warningsDisabled = settingStore.get(
|
||||||
|
'Comfy.VersionCompatibility.DisableWarnings'
|
||||||
|
)
|
||||||
|
return hasVersionMismatch.value && !isDismissed.value && !warningsDisabled
|
||||||
})
|
})
|
||||||
|
|
||||||
const warningMessage = computed(() => {
|
const warningMessage = computed(() => {
|
||||||
|
|||||||
@@ -523,7 +523,8 @@ const zSettings = z.object({
|
|||||||
'main.sub.setting.name': z.any(),
|
'main.sub.setting.name': z.any(),
|
||||||
'single.setting': z.any(),
|
'single.setting': z.any(),
|
||||||
'LiteGraph.Node.DefaultPadding': z.boolean(),
|
'LiteGraph.Node.DefaultPadding': z.boolean(),
|
||||||
'LiteGraph.Pointer.TrackpadGestures': z.boolean()
|
'LiteGraph.Pointer.TrackpadGestures': z.boolean(),
|
||||||
|
'Comfy.VersionCompatibility.DisableWarnings': z.boolean()
|
||||||
})
|
})
|
||||||
|
|
||||||
export type EmbeddingsResponse = z.infer<typeof zEmbeddingsResponse>
|
export type EmbeddingsResponse = z.infer<typeof zEmbeddingsResponse>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
||||||
import { useVersionCompatibilityStore } from '@/platform/updates/common/versionCompatibilityStore'
|
import { useVersionCompatibilityStore } from '@/platform/updates/common/versionCompatibilityStore'
|
||||||
|
import { useSettingStore } from '@/platform/settings/settingStore'
|
||||||
import { useSystemStatsStore } from '@/stores/systemStatsStore'
|
import { useSystemStatsStore } from '@/stores/systemStatsStore'
|
||||||
|
|
||||||
vi.mock('@/config', () => ({
|
vi.mock('@/config', () => ({
|
||||||
@@ -13,6 +14,13 @@ vi.mock('@/config', () => ({
|
|||||||
|
|
||||||
vi.mock('@/stores/systemStatsStore')
|
vi.mock('@/stores/systemStatsStore')
|
||||||
|
|
||||||
|
// Mock settingStore
|
||||||
|
vi.mock('@/platform/settings/settingStore', () => ({
|
||||||
|
useSettingStore: vi.fn(() => ({
|
||||||
|
get: vi.fn(() => false) // Default to warnings enabled (false = not disabled)
|
||||||
|
}))
|
||||||
|
}))
|
||||||
|
|
||||||
// Mock useStorage and until from VueUse
|
// Mock useStorage and until from VueUse
|
||||||
const mockDismissalStorage = ref({} as Record<string, number>)
|
const mockDismissalStorage = ref({} as Record<string, number>)
|
||||||
vi.mock('@vueuse/core', () => ({
|
vi.mock('@vueuse/core', () => ({
|
||||||
@@ -23,6 +31,7 @@ vi.mock('@vueuse/core', () => ({
|
|||||||
describe('useVersionCompatibilityStore', () => {
|
describe('useVersionCompatibilityStore', () => {
|
||||||
let store: ReturnType<typeof useVersionCompatibilityStore>
|
let store: ReturnType<typeof useVersionCompatibilityStore>
|
||||||
let mockSystemStatsStore: any
|
let mockSystemStatsStore: any
|
||||||
|
let mockSettingStore: any
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
setActivePinia(createPinia())
|
setActivePinia(createPinia())
|
||||||
@@ -36,7 +45,12 @@ describe('useVersionCompatibilityStore', () => {
|
|||||||
refetchSystemStats: vi.fn()
|
refetchSystemStats: vi.fn()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mockSettingStore = {
|
||||||
|
get: vi.fn(() => false) // Default to warnings enabled
|
||||||
|
}
|
||||||
|
|
||||||
vi.mocked(useSystemStatsStore).mockReturnValue(mockSystemStatsStore)
|
vi.mocked(useSystemStatsStore).mockReturnValue(mockSystemStatsStore)
|
||||||
|
vi.mocked(useSettingStore).mockReturnValue(mockSettingStore)
|
||||||
|
|
||||||
store = useVersionCompatibilityStore()
|
store = useVersionCompatibilityStore()
|
||||||
})
|
})
|
||||||
@@ -196,6 +210,27 @@ describe('useVersionCompatibilityStore', () => {
|
|||||||
|
|
||||||
expect(store.shouldShowWarning).toBe(false)
|
expect(store.shouldShowWarning).toBe(false)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should not show warning when disabled via setting', async () => {
|
||||||
|
// Enable the disable setting
|
||||||
|
mockSettingStore.get.mockReturnValue(true)
|
||||||
|
|
||||||
|
// Set up version mismatch that would normally show warning
|
||||||
|
mockSystemStatsStore.systemStats = {
|
||||||
|
system: {
|
||||||
|
comfyui_version: '1.25.0',
|
||||||
|
required_frontend_version: '1.25.0'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mockSystemStatsStore.isInitialized = true
|
||||||
|
|
||||||
|
await store.checkVersionCompatibility()
|
||||||
|
|
||||||
|
expect(store.shouldShowWarning).toBe(false)
|
||||||
|
expect(mockSettingStore.get).toHaveBeenCalledWith(
|
||||||
|
'Comfy.VersionCompatibility.DisableWarnings'
|
||||||
|
)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('warning messages', () => {
|
describe('warning messages', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user