feature: client: key: view: get rid of mock-require

This commit is contained in:
coderiaser 2026-01-25 22:41:02 +02:00
parent 6fe61b775b
commit 3c1a82e702
2 changed files with 26 additions and 14 deletions

View file

@ -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();
};

View file

@ -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();
});