Fix `prepare`
The parsing algorithm was broken and prepare couldn't recognize RPC
nodes. The mistake probably happened when I added Action support, but
with no tests. Tests are now included.
Change-Id: I1b4eb2eb76a30c4495e2aacbb6848f449eba3abb
diff --git a/src/path_parser.hpp b/src/path_parser.hpp
index e1982f5..3abbce3 100644
--- a/src/path_parser.hpp
+++ b/src/path_parser.hpp
@@ -441,7 +441,7 @@
}
if (attr.m_nodes.empty()
- || (!std::holds_alternative<actionNode_>(attr.m_nodes.back().m_suffix) && !std::holds_alternative<actionNode_>(attr.m_nodes.back().m_suffix))) {
+ || (!std::holds_alternative<rpcNode_>(attr.m_nodes.back().m_suffix) && !std::holds_alternative<actionNode_>(attr.m_nodes.back().m_suffix))) {
auto& parserContext = x3::get<parser_context_tag>(ctx);
parserContext.m_errorMsg = "This is not a path to an RPC/action.";
return false;