diff --git a/browser_tests/dialog.spec.ts b/browser_tests/dialog.spec.ts index 7c56a1859..e4e54a87a 100644 --- a/browser_tests/dialog.spec.ts +++ b/browser_tests/dialog.spec.ts @@ -45,38 +45,54 @@ test.describe('Execution error', () => { test.describe('Missing models warning', () => { test.beforeEach(async ({ comfyPage }) => { + await comfyPage.setSetting('Comfy.Workflow.ShowMissingModelsWarning', true) await comfyPage.page.evaluate((url: string) => { return fetch(`${url}/api/devtools/cleanup_fake_model`) }, comfyPage.url) - await comfyPage.setSetting('Comfy.Workflow.ModelDownload.AllowedSources', [ - 'http://localhost:8188' - ]) - await comfyPage.setSetting('Comfy.Workflow.ModelDownload.AllowedSuffixes', [ - '.safetensors' - ]) }) // Regressed by https://github.com/comfyanonymous/ComfyUI/pull/4981 test.skip('Should display a warning when missing models are found', async ({ comfyPage }) => { - await comfyPage.setSetting('Comfy.Workflow.ShowMissingModelsWarning', true) - // The fake_model.safetensors is served by // https://github.com/Comfy-Org/ComfyUI_devtools/blob/main/__init__.py await comfyPage.loadWorkflow('missing_models') - // Wait for the element with the .comfy-missing-models selector to be visible const missingModelsWarning = comfyPage.page.locator('.comfy-missing-models') await expect(missingModelsWarning).toBeVisible() - // Click the download button const downloadButton = comfyPage.page.getByLabel('Download') await expect(downloadButton).toBeVisible() await downloadButton.click() - // Wait for the element with the .download-complete selector to be visible const downloadComplete = comfyPage.page.locator('.download-complete') await expect(downloadComplete).toBeVisible() }) + + test('Can configure download folder', async ({ comfyPage }) => { + await comfyPage.loadWorkflow('missing_models') + + const missingModelsWarning = comfyPage.page.locator('.comfy-missing-models') + await expect(missingModelsWarning).toBeVisible() + + const folderSelectToggle = comfyPage.page.locator( + '.model-path-select-checkbox' + ) + const folderSelect = comfyPage.page.locator('.model-path-select') + await expect(folderSelectToggle).toBeVisible() + await expect(folderSelect).not.toBeVisible() + + await folderSelectToggle.click() // show the selectors + await expect(folderSelect).toBeVisible() + + await folderSelect.click() // open dropdown + await expect(folderSelect).toHaveClass(/p-select-open/) + + await folderSelect.click() // close the dropdown + await expect(folderSelect).not.toHaveClass(/p-select-open/) + + await folderSelectToggle.click() // hide the selectors + await expect(folderSelect).not.toBeVisible() + }) }) diff --git a/src/components/dialog/content/MissingModelsWarning.vue b/src/components/dialog/content/MissingModelsWarning.vue index 78541a860..cf9ac447f 100644 --- a/src/components/dialog/content/MissingModelsWarning.vue +++ b/src/components/dialog/content/MissingModelsWarning.vue @@ -4,6 +4,15 @@

When loading the graph, the following models were not found:

+

+ + Show folder selector +

+