From 7eb33d7ac267aa2aef93e58ce84c57848e7d503c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Oct 2025 22:22:51 +0000 Subject: [PATCH 1/2] Bump vitest from 3.2.4 to 4.0.5 Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 3.2.4 to 4.0.5. - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.0.5/packages/vitest) --- updated-dependencies: - dependency-name: vitest dependency-version: 4.0.5 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bcac1285bb..1884a0b038 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,6 @@ "rollup": "^4.50.0", "sass": "^1.92.0", "svg-sprite": "^2.0.4", - "vitest": "^3.2.4" + "vitest": "^4.0.5" } } From 36ccf761e92a0aec9e07b4ac2239c4da1286d900 Mon Sep 17 00:00:00 2001 From: Thomas von Deyen Date: Fri, 31 Oct 2025 13:29:51 +0100 Subject: [PATCH 2/2] fix(js spec): Update mocking to Vitest v4.0 --- .../components/element_editor.spec.js | 8 ++--- .../link_buttons/link_button.spec.js | 6 ++-- .../link_buttons/unlink_button.spec.js | 4 ++- .../components/uploader/file_upload.spec.js | 10 +++--- spec/javascript/alchemy_admin/setup.js | 32 ++++++++++--------- 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/spec/javascript/alchemy_admin/components/element_editor.spec.js b/spec/javascript/alchemy_admin/components/element_editor.spec.js index 00c9a618f2..6d454b7811 100644 --- a/spec/javascript/alchemy_admin/components/element_editor.spec.js +++ b/spec/javascript/alchemy_admin/components/element_editor.spec.js @@ -113,11 +113,9 @@ describe("alchemy-element-editor", () => { beforeEach(() => { editor = getComponent(html) Alchemy = { - Spinner: vi.fn(() => { - return { - spin: vi.fn(), - stop: vi.fn() - } + Spinner: vi.fn(function () { + this.spin = vi.fn() + this.stop = vi.fn() }), growl: vi.fn(), routes: { diff --git a/spec/javascript/alchemy_admin/components/link_buttons/link_button.spec.js b/spec/javascript/alchemy_admin/components/link_buttons/link_button.spec.js index 594cac97f4..3e21efcb6c 100644 --- a/spec/javascript/alchemy_admin/components/link_buttons/link_button.spec.js +++ b/spec/javascript/alchemy_admin/components/link_buttons/link_button.spec.js @@ -3,9 +3,9 @@ import "alchemy_admin/components/link_buttons/link_button" import { renderComponent } from "../component.helper" beforeEach(() => { - Alchemy.LinkDialog = vi.fn(() => ({ - open: vi.fn(() => Promise.resolve({ data: {} })) - })) + Alchemy.LinkDialog = vi.fn(function () { + this.open = vi.fn(() => Promise.resolve({ data: {} })) + }) }) describe("alchemy-link-button", () => { diff --git a/spec/javascript/alchemy_admin/components/link_buttons/unlink_button.spec.js b/spec/javascript/alchemy_admin/components/link_buttons/unlink_button.spec.js index 8399b25916..5b302a231d 100644 --- a/spec/javascript/alchemy_admin/components/link_buttons/unlink_button.spec.js +++ b/spec/javascript/alchemy_admin/components/link_buttons/unlink_button.spec.js @@ -3,7 +3,9 @@ import "alchemy_admin/components/link_buttons/unlink_button" import { renderComponent } from "../component.helper" beforeEach(() => { - Alchemy.LinkDialog = vi.fn(() => ({ open: vi.fn() })) + Alchemy.LinkDialog = vi.fn(function () { + this.open = vi.fn() + }) }) describe("alchemy-unlink-button", () => { diff --git a/spec/javascript/alchemy_admin/components/uploader/file_upload.spec.js b/spec/javascript/alchemy_admin/components/uploader/file_upload.spec.js index 1f40a778e6..889487698e 100644 --- a/spec/javascript/alchemy_admin/components/uploader/file_upload.spec.js +++ b/spec/javascript/alchemy_admin/components/uploader/file_upload.spec.js @@ -132,11 +132,11 @@ describe("alchemy-file-upload", () => { describe("with image file", () => { beforeEach(() => { // mock file reader to response with an (invalid) image - vi.spyOn(global, "FileReader").mockImplementation(() => ({ - readAsDataURL: vi.fn(), - addEventListener: (_load, callback) => callback(), // run the load callback - result: "data:image/png;base64,undefined" - })) + vi.spyOn(global, "FileReader").mockImplementation(function () { + this.readAsDataURL = vi.fn() + this.addEventListener = (_load, callback) => callback() // run the load callback + this.result = "data:image/png;base64,undefined" + }) renderComponent( new File(["a".repeat(100)], "foo.png", { type: "image/png" }) diff --git a/spec/javascript/alchemy_admin/setup.js b/spec/javascript/alchemy_admin/setup.js index cf6d53ef61..51f363b341 100644 --- a/spec/javascript/alchemy_admin/setup.js +++ b/spec/javascript/alchemy_admin/setup.js @@ -67,23 +67,23 @@ globalThis.fetch = vi.fn().mockResolvedValue({ }) // Mock XMLHttpRequest to avoid network requests -globalThis.XMLHttpRequest = vi.fn(() => ({ - open: vi.fn(), - send: vi.fn(), - setRequestHeader: vi.fn(), - abort: vi.fn(), - status: 200, - readyState: 4, - responseText: "", - response: "", - upload: { +globalThis.XMLHttpRequest = vi.fn(function () { + this.open = vi.fn() + this.send = vi.fn() + this.setRequestHeader = vi.fn() + this.abort = vi.fn() + this.status = 200 + this.readyState = 4 + this.responseText = "" + this.response = "" + this.upload = { addEventListener: vi.fn(), removeEventListener: vi.fn(), onprogress: vi.fn() - }, - addEventListener: vi.fn(), - removeEventListener: vi.fn() -})) + } + this.addEventListener = vi.fn() + this.removeEventListener = vi.fn() +}) // Mock matchMedia for components that use it Object.defineProperty(window, "matchMedia", { @@ -106,7 +106,9 @@ globalThis.Alchemy = { locale: "en", growl: vi.fn(), routes: {}, - LinkDialog: vi.fn(() => ({ open: vi.fn() })), + LinkDialog: vi.fn(function () { + this.open = vi.fn() + }), currentDialog: vi.fn(), uploader_defaults: {}, PreviewWindow: {