@cosmology/ast
Version:
Cosmos TypeScript AST generation
58 lines (54 loc) • 1.98 kB
text/typescript
import { traverse } from "@cosmology/proto-parser";
import { getNestedProto } from "@cosmology/utils";
import { defaultTelescopeOptions, ProtoService } from "@cosmology/types";
import {
expectCode,
getTestProtoStore,
printCode,
} from "../../../../../test-utils";
import { GenericParseContext } from "../../../../encoding";
import {
createRpcInterface,
createRpcClientClass,
createRpcClientInterface,
} from "./rpc";
const store = getTestProtoStore();
store.traverseAll();
it("RPC Msg Client but Query implement", () => {
const ref = store.findProto("cosmos/bank/v1beta1/tx.proto");
const res = traverse(store, ref);
const service: ProtoService = getNestedProto(res).Msg;
const context = new GenericParseContext(ref, store, defaultTelescopeOptions);
expectCode(createRpcClientInterface(context, service));
expectCode(createRpcClientClass(context, service));
expectCode(createRpcInterface(context, service));
});
it("RPC Msg implement Client", () => {
const ref = store.findProto("cosmos/bank/v1beta1/tx.proto");
const res = traverse(store, ref);
const service: ProtoService = getNestedProto(res).Msg;
const context = new GenericParseContext(ref, store, defaultTelescopeOptions);
context.options.rpcClients!.serviceImplement = {
Msg: {
type: "Tx",
},
};
expectCode(createRpcClientInterface(context, service));
expectCode(createRpcClientClass(context, service));
});
it("RPC Msg Query mixed implement Client", () => {
const ref = store.findProto("cosmos/bank/v1beta1/tx.proto");
const res = traverse(store, ref);
const service: ProtoService = getNestedProto(res).Msg;
const context = new GenericParseContext(ref, store, defaultTelescopeOptions);
context.options.rpcClients!.serviceImplement = {
Msg: {
include: {
patterns: ["**.multiSend"],
},
type: "Tx",
},
};
expectCode(createRpcClientInterface(context, service));
expectCode(createRpcClientClass(context, service));
});