import assert from "node:assert"; import { describe, test, mock, } from "node:test"; import { handleBalloonDestroy } from "./handleBalloonDestroy"; describe("handleBalloonDestroy", () => { test("deactivates point and emits balloonClose action", () => { const setIsActive = mock.fn(); const onAction = mock.fn(); handleBalloonDestroy({ setIsActive, onAction, getActionArgs: () => ({ el: null, ref: null, stateActions: {}, getData: () => ({ type: "balloonClose", point: { id: "point-1", coords: [ 55.751244, 37.618423 ], }, }), }), }); assert.strictEqual(setIsActive.mock.calls.length, 1); assert.strictEqual(setIsActive.mock.calls[0]?.arguments?.[0], false); assert.strictEqual(onAction.mock.calls.length, 1); assert.strictEqual(onAction.mock.calls[0]?.arguments?.[0]?.getData()?.type, "balloonClose"); }); test("deactivates point without onAction callback", () => { const setIsActive = mock.fn(); handleBalloonDestroy({ setIsActive, getActionArgs: () => ({ el: null, ref: null, stateActions: {}, getData: () => ({ type: "balloonClose", point: { id: "point-1", coords: [ 55.751244, 37.618423 ], }, }), }), }); assert.strictEqual(setIsActive.mock.calls.length, 1); assert.strictEqual(setIsActive.mock.calls[0]?.arguments?.[0], false); }); });