mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
fix: reload with default graph and e2e tests
This commit is contained in:
@@ -232,11 +232,27 @@ test.describe('Node Color Adjustments', () => {
|
|||||||
}) => {
|
}) => {
|
||||||
await comfyPage.setSetting('Comfy.Node.Opacity', 0.5)
|
await comfyPage.setSetting('Comfy.Node.Opacity', 0.5)
|
||||||
await comfyPage.setSetting('Comfy.ColorPalette', 'light')
|
await comfyPage.setSetting('Comfy.ColorPalette', 'light')
|
||||||
const saveWorkflowInterval = 1000
|
await comfyPage.nextFrame()
|
||||||
|
await comfyPage.page.waitForFunction(
|
||||||
|
() => {
|
||||||
|
const workflow = localStorage.getItem('workflow')
|
||||||
|
if (!workflow) return false
|
||||||
|
try {
|
||||||
|
const parsed = JSON.parse(workflow)
|
||||||
|
return parsed?.nodes && Array.isArray(parsed.nodes)
|
||||||
|
} catch {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ timeout: 3000 }
|
||||||
|
)
|
||||||
const workflow = await comfyPage.page.evaluate(() => {
|
const workflow = await comfyPage.page.evaluate(() => {
|
||||||
return localStorage.getItem('workflow')
|
return localStorage.getItem('workflow')
|
||||||
})
|
})
|
||||||
for (const node of JSON.parse(workflow ?? '{}').nodes) {
|
const parsed = JSON.parse(workflow ?? '{}')
|
||||||
|
expect(parsed.nodes).toBeDefined()
|
||||||
|
expect(Array.isArray(parsed.nodes)).toBe(true)
|
||||||
|
for (const node of parsed.nodes) {
|
||||||
if (node.bgcolor) expect(node.bgcolor).not.toMatch(/hsla/)
|
if (node.bgcolor) expect(node.bgcolor).not.toMatch(/hsla/)
|
||||||
if (node.color) expect(node.color).not.toMatch(/hsla/)
|
if (node.color) expect(node.color).not.toMatch(/hsla/)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { tryOnScopeDispose, useDebounceFn } from '@vueuse/core'
|
import { tryOnScopeDispose } from '@vueuse/core'
|
||||||
import { computed, ref, watch } from 'vue'
|
import { computed, ref, watch } from 'vue'
|
||||||
import { useRoute, useRouter } from 'vue-router'
|
import { useRoute, useRouter } from 'vue-router'
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ export function useWorkflowPersistence() {
|
|||||||
|
|
||||||
const lastSavedJsonByPath = ref<Record<string, string>>({})
|
const lastSavedJsonByPath = ref<Record<string, string>>({})
|
||||||
|
|
||||||
const persistCurrentWorkflow = useDebounceFn(() => {
|
const persistCurrentWorkflow = () => {
|
||||||
if (!workflowPersistenceEnabled.value) return
|
if (!workflowPersistenceEnabled.value) return
|
||||||
const activeWorkflow = workflowStore.activeWorkflow
|
const activeWorkflow = workflowStore.activeWorkflow
|
||||||
if (!activeWorkflow) return
|
if (!activeWorkflow) return
|
||||||
@@ -100,14 +100,13 @@ export function useWorkflowPersistence() {
|
|||||||
workflowDraftStore.removeDraft(activeWorkflow.path)
|
workflowDraftStore.removeDraft(activeWorkflow.path)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}, 1_000)
|
}
|
||||||
|
|
||||||
const loadPreviousWorkflowFromStorage = async () => {
|
const loadPreviousWorkflowFromStorage = async () => {
|
||||||
const workflowName = getStorageValue('Comfy.PreviousWorkflow')
|
const workflowName = getStorageValue('Comfy.PreviousWorkflow')
|
||||||
const preferredPath = workflowName
|
const preferredPath = workflowName
|
||||||
? `${ComfyWorkflow.basePath}${workflowName}`
|
? `${ComfyWorkflow.basePath}${workflowName}`
|
||||||
: null
|
: null
|
||||||
|
|
||||||
return await workflowDraftStore.loadPersistedWorkflow({
|
return await workflowDraftStore.loadPersistedWorkflow({
|
||||||
workflowName,
|
workflowName,
|
||||||
preferredPath,
|
preferredPath,
|
||||||
@@ -213,7 +212,16 @@ export function useWorkflowPersistence() {
|
|||||||
if (workflowStore.getWorkflowByPath(path)) return
|
if (workflowStore.getWorkflowByPath(path)) return
|
||||||
const draft = workflowDraftStore.getDraft(path)
|
const draft = workflowDraftStore.getDraft(path)
|
||||||
if (!draft?.isTemporary) return
|
if (!draft?.isTemporary) return
|
||||||
workflowStore.createTemporary(draft.name)
|
try {
|
||||||
|
const workflowData = JSON.parse(draft.data)
|
||||||
|
workflowStore.createTemporary(draft.name, workflowData)
|
||||||
|
} catch (err) {
|
||||||
|
console.warn(
|
||||||
|
'Failed to parse workflow draft, creating with default',
|
||||||
|
err
|
||||||
|
)
|
||||||
|
workflowStore.createTemporary(draft.name)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
workflowStore.openWorkflowsInBackground({
|
workflowStore.openWorkflowsInBackground({
|
||||||
|
|||||||
Reference in New Issue
Block a user