spec/neovim/plugin_spec.rb in neovim-0.0.6 vs spec/neovim/plugin_spec.rb in neovim-0.1.0

- old
+ new

@@ -60,8 +60,49 @@ :name => "Foo", :sync => false, :opts => {:range => "", :nargs => 1}, ) end + + it "registers a top level RPC" do + cmd_block = Proc.new {} + + plugin = Plugin.from_config_block("source") do |plug| + plug.rpc("Foo", :sync => true, &cmd_block) + end + + expect(plugin.handlers.size).to be(1) + handler = plugin.handlers.first + + expect(handler.block).to eq(cmd_block) + expect(handler.qualified_name).to eq("Foo") + end + end + + describe "#specs" do + it "returns specs for plugin handlers" do + plugin = Plugin.from_config_block("source") do |plug| + plug.command("Foo", :sync => true, :nargs => 2) + end + + expect(plugin.specs).to eq( + [ + { + :type => :command, + :name => "Foo", + :sync => true, + :opts=> {:nargs => 2} + } + ] + ) + end + + it "doesn't include specs for top-level RPCs" do + plugin = Plugin.from_config_block("source") do |plug| + plug.rpc("Foo", :sync => true) + end + + expect(plugin.specs).to eq([]) + end end end end