Describe api.config.keymap It 'should set injected keymapping' let map = {'a': 'b'} let config = {'keymap': map} let default = incsearch#make().keymapping() let injected = incsearch#make(config).keymapping() Assert Equals(injected, extend(copy(default), map)) End It 'should return copied keymapping dictionary' let map = {'a': 'b'} let cli = incsearch#make() let d = copy(cli.keymapping()) call extend(cli.keymapping(), map) Assert Equals(cli.keymapping(), d) End It 'can override default keymapping' let map = {"\": "\t"} let config = {'keymap': map} let default = incsearch#make().keymapping() let injected = incsearch#make(config).keymapping() Assert Equals(injected, extend(copy(default), map)) End It 'should support rich keymapping configuration' let map = { \ 'a': { \ 'key': 'b', \ 'noremap': 0 \ }, \ 'c': 'd' \ } let config = {'keymap': map} let default = incsearch#make().keymapping() let injected = incsearch#make(config).keymapping() Assert Equals(injected, extend(copy(default), map)) End It 'should not affect other object' let map = {'a': 'b'} let config = {'keymap': map} let cli = incsearch#make(config) let d = copy(cli.keymapping()) Assert NotEquals(incsearch#make().keymapping(), d) End End