From 3c1a82e702e246b81178794cbb98173f00f8f855 Mon Sep 17 00:00:00 2001 From: coderiaser Date: Sun, 25 Jan 2026 22:41:02 +0200 Subject: [PATCH] feature: client: key: view: get rid of mock-require --- client/key/vim/index.js | 27 +++++++++++++++++++++------ client/key/vim/index.spec.js | 13 +++++-------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/client/key/vim/index.js b/client/key/vim/index.js index 707fe777..a93f7f98 100644 --- a/client/key/vim/index.js +++ b/client/key/vim/index.js @@ -8,6 +8,7 @@ const { setCurrent, selectFileNotParent, } = require('./set-current'); +const {promptNewFile} = require('../../dom'); module.exports = (key, event, overrides = {}) => { const defaults = { @@ -36,14 +37,22 @@ const getOperations = (event, deps) => { getCurrentName, prompt = globalThis.DOM.Dialog.prompt, preventDefault = event?.preventDefault?.bind(event), + stopImmediatePropagation = event?.preventDefault?.bind(event), + promptNewFile = DOM.promptNewFile, toggleSelectedFile, Buffer = {}, createFindNext = _createFindNext, createFindPrevious = _createFindPrevious, + createMakeFile = _createMakeFile, } = deps; return { + makeFile: createMakeFile({ + promptNewFile, + preventDefault, + stopImmediatePropagation, + }), findNext: createFindNext({ setCurrentByName, }), @@ -62,12 +71,6 @@ const getOperations = (event, deps) => { DOM.promptNewDir(); }, - makeFile: () => { - event.stopImmediatePropagation(); - event.preventDefault(); - DOM.promptNewFile(); - }, - terminal: () => { CloudCmd.Terminal.show(); }, @@ -144,3 +147,15 @@ const _createFindNext = (overrides = {}) => () => { setCurrentByName(name); }; + +const _createMakeFile = (overrides = {}) => () => { + const { + promptNewFile, + stopImmediatePropagation, + preventDefault, + } = overrides; + + stopImmediatePropagation(); + preventDefault(); + promptNewFile(); +}; diff --git a/client/key/vim/index.spec.js b/client/key/vim/index.spec.js index 57f40a49..2a1b1274 100644 --- a/client/key/vim/index.spec.js +++ b/client/key/vim/index.spec.js @@ -615,12 +615,7 @@ test('cloudcmd: client: key: make directory', async (t) => { }); test('cloudcmd: client: key: make file', (t) => { - const vim = reRequire(pathVim); - const {DOM} = globalThis; - - assign(DOM, { - promptNewFile: stub(), - }); + const promptNewFile = stub(); const event = { stopImmediatePropagation: stub(), @@ -628,9 +623,11 @@ test('cloudcmd: client: key: make file', (t) => { }; vim('m', event); - vim('f', event); + vim('f', event, { + promptNewFile, + }); - t.calledWithNoArgs(DOM.promptNewDir); + t.calledWithNoArgs(promptNewFile); t.end(); });