diff --git a/client/key/index.js b/client/key/index.js index c01c23c8..5c1fa2b7 100644 --- a/client/key/index.js +++ b/client/key/index.js @@ -97,7 +97,7 @@ async function listener(event, overrides = {}) { return; if (isVim) - await vim(char, event); + vim(char, event); } function getSymbol(shift, keyCode) { diff --git a/client/key/vim/index.js b/client/key/vim/index.js index 4509ae13..a38e9970 100644 --- a/client/key/vim/index.js +++ b/client/key/vim/index.js @@ -9,30 +9,31 @@ const { selectFileNotParent, } = require('./set-current'); -const {DOM = {}, CloudCmd = {}, -} = globalThis; - -const {Dialog = {}} = DOM; - -const DEPS = { - ...DOM, - ...CloudCmd, -}; - -module.exports = async (key, event, deps = DEPS) => { +module.exports = (key, event, overrides = {}) => { + const defaults = { + ...globalThis.DOM, + ...globalThis.CloudCmd, + }; + + const deps = { + ...defaults, + ...overrides, + }; + const operations = getOperations(event, deps); - await vim(key, operations, deps); + vim(key, operations, deps); }; const getOperations = (event, deps) => { const { - Info = DOM.CurrentInfo, + Info = globalThis.DOM.CurrentInfo, + CloudCmd = globalThis.CloudCmd, Operation, unselectFiles, setCurrentFile, setCurrentByName, getCurrentName, - prompt = Dialog.prompt, + prompt = globalThis.DOM.Dialog.prompt, preventDefault = event?.preventDefault?.bind(event), toggleSelectedFile, diff --git a/client/key/vim/index.spec.js b/client/key/vim/index.spec.js index 384f3aea..ee7fabe0 100644 --- a/client/key/vim/index.spec.js +++ b/client/key/vim/index.spec.js @@ -644,19 +644,21 @@ test('cloudcmd: client: key: make file', (t) => { t.end(); }); -test.skip('cloudcmd: client: vim: terminal', (t) => { - const {CloudCmd} = globalThis; - - assign(CloudCmd, { +test('cloudcmd: client: vim: terminal', (t) => { + const CloudCmd = { Terminal: { show: stub(), }, - }); + }; const event = {}; - vim('t', event); - vim('t', event); + vim('t', event, { + CloudCmd, + }); + vim('t', event, { + CloudCmd, + }); t.calledWithNoArgs(CloudCmd.Terminal.show); t.end();