Skip to content

Commit

Permalink
Mock settingStore
Browse files Browse the repository at this point in the history
  • Loading branch information
huchenlei committed Sep 16, 2024
1 parent 74fa4a2 commit cb5e32d
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 27 deletions.
8 changes: 0 additions & 8 deletions src/extensions/core/nodeBadge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,6 @@ class NodeBadgeExtension implements ComfyExtension {
) {}

init(app: ComfyApp) {
if (!app.vueAppReady) {
return
}

const settingStore = useSettingStore()
this.nodeSourceBadgeMode = computed(
() =>
Expand Down Expand Up @@ -119,10 +115,6 @@ class NodeBadgeExtension implements ComfyExtension {
}

nodeCreated(node: ComfyLGraphNode, app: ComfyApp) {
if (!app.vueAppReady) {
return
}

node.badgePosition = BadgePosition.TopRight
// @ts-expect-error Disable ComfyUI-Manager's badge drawing by setting badge_enabled to true. Remove this when ComfyUI-Manager's badge drawing is removed.
node.badge_enabled = true
Expand Down
24 changes: 6 additions & 18 deletions src/scripts/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1895,9 +1895,7 @@ export class ComfyApp {

// Save current workflow automatically
setInterval(() => {
const sortNodes =
this.vueAppReady &&
useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')
const sortNodes = useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')
const workflow = JSON.stringify(this.graph.serialize({ sortNodes }))
localStorage.setItem('workflow', workflow)
if (api.clientId) {
Expand Down Expand Up @@ -2134,10 +2132,7 @@ export class ComfyApp {
}

showMissingNodesError(missingNodeTypes, hasAddedNodes = true) {
if (
this.vueAppReady &&
useSettingStore().get('Comfy.Workflow.ShowMissingNodesWarning')
) {
if (useSettingStore().get('Comfy.Workflow.ShowMissingNodesWarning')) {
showLoadWorkflowWarning({
missingNodeTypes,
hasAddedNodes,
Expand All @@ -2151,10 +2146,7 @@ export class ComfyApp {
}

showMissingModelsError(missingModels) {
if (
this.vueAppReady &&
useSettingStore().get('Comfy.Workflow.ShowMissingModelsWarning')
) {
if (useSettingStore().get('Comfy.Workflow.ShowMissingModelsWarning')) {
showMissingModelsWarning({
missingModels,
maximizable: true
Expand Down Expand Up @@ -2210,10 +2202,7 @@ export class ComfyApp {
console.error(error)
}

if (
this.vueAppReady &&
useSettingStore().get('Comfy.Validation.Workflows')
) {
if (useSettingStore().get('Comfy.Validation.Workflows')) {
// TODO: Show validation error in a dialog.
const validatedGraphData = await validateComfyWorkflow(
graphData,
Expand Down Expand Up @@ -2416,9 +2405,8 @@ export class ComfyApp {
}
}

const sortNodes =
this.vueAppReady &&
useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')
const sortNodes = useSettingStore().get('Comfy.Workflow.SortNodeIdOnSave')

const workflow = graph.serialize({ sortNodes })
const output = {}
// Process nodes in order of execution
Expand Down
6 changes: 5 additions & 1 deletion tests-ui/utils/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { APIConfig, mockApi } from './setup'
import { APIConfig, mockApi, mockSettingStore } from './setup'
import { Ez, EzGraph, EzNameSpace } from './ezgraph'
import lg from './litegraph'
import fs from 'fs'
Expand Down Expand Up @@ -40,7 +40,11 @@ export async function start(config: StartConfig = {}): Promise<StartResult> {
document.body.innerHTML = html.toString()

mockApi(config)
mockSettingStore()
const { app } = await import('../../src/scripts/app')
const { useSettingStore } = await import('../../src/stores/settingStore')
useSettingStore().addSettings(app.ui.settings)

const { LiteGraph, LGraphCanvas } = await import('@comfyorg/litegraph')
config.preSetup?.(app)
const canvasEl = document.createElement('canvas')
Expand Down
27 changes: 27 additions & 0 deletions tests-ui/utils/setup.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import type { ComfySettingsDialog } from '@/scripts/ui/settings'
import type { ComfyApp } from '@/scripts/app'
import '../../src/scripts/api'

const fs = require('fs')
Expand Down Expand Up @@ -97,3 +99,28 @@ export function mockApi(config: APIConfig = {}) {
}
}))
}

export const mockSettingStore = () => {
let app: ComfyApp | null = null

const mockedSettingStore = {
addSettings(settings: ComfySettingsDialog) {
app = settings.app
},

set(key: string, value: any) {
app?.ui.settings.setSettingValue(key, value)
},

get(key: string) {
return (
app?.ui.settings.getSettingValue(key) ??
app?.ui.settings.getSettingDefaultValue(key)
)
}
}

jest.mock('@/stores/settingStore', () => ({
useSettingStore: jest.fn(() => mockedSettingStore)
}))
}

0 comments on commit cb5e32d

Please sign in to comment.