UNPKG

@cosmology/ast

Version:
122 lines (121 loc) 4.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _class = require("../class"); var _utils = require("@cosmology/utils"); var _types = require("@cosmology/types"); var _generator = _interopRequireDefault(require("@babel/generator")); var _encoding = require("../../../encoding"); var _testUtils = require("../../../../test-utils"); var _deepmerge = _interopRequireDefault(require("deepmerge")); var store = (0, _testUtils.getTestProtoStore)(); store.traverseAll(); var expectCode = function expectCode(ast) { expect((0, _generator["default"])(ast).code).toMatchSnapshot(); }; var printCode = function printCode(ast) { console.log((0, _generator["default"])(ast).code); }; it('uses fromSDKJSON when useSDKTypes && prototypes.methods.fromSDKJSON', function () { var packages = ['cosmos.bank.v1beta1', 'osmosis.gamm.v1beta1']; var refs = store.filterProtoWhere(function (ref) { return packages.includes(ref.proto["package"]); }); var services = refs.map(function (ref) { var _proto$Query; var proto = (0, _utils.getNestedProto)(ref.traversed); if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query = proto.Query) === null || _proto$Query === void 0 ? void 0 : _proto$Query.type) !== 'Service') { return; } return proto.Query; }).filter(Boolean); var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, { useSDKTypes: true, prototypes: { enabled: true, methods: { fromSDKJSON: true } } }); var context = new _encoding.GenericParseContext(refs[0], store, options); var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient'); expectCode(ast); }); it('uses fromJSON when !useSDKTypes && prototypes.methods.fromJSON', function () { var packages = ['cosmos.bank.v1beta1', 'osmosis.gamm.v1beta1']; var refs = store.filterProtoWhere(function (ref) { return packages.includes(ref.proto["package"]); }); var services = refs.map(function (ref) { var _proto$Query2; var proto = (0, _utils.getNestedProto)(ref.traversed); if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query2 = proto.Query) === null || _proto$Query2 === void 0 ? void 0 : _proto$Query2.type) !== 'Service') { return; } return proto.Query; }).filter(Boolean); var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, { useSDKTypes: false, prototypes: { enabled: true, methods: { fromJSON: true } } }); var context = new _encoding.GenericParseContext(refs[0], store, options); var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient'); expectCode(ast); }); it('returns any when useSDKTypes && !prototypes.methods.fromSDKJSON', function () { var packages = ['cosmos.bank.v1beta1', 'osmosis.gamm.v1beta1']; var refs = store.filterProtoWhere(function (ref) { return packages.includes(ref.proto["package"]); }); var services = refs.map(function (ref) { var _proto$Query3; var proto = (0, _utils.getNestedProto)(ref.traversed); if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query3 = proto.Query) === null || _proto$Query3 === void 0 ? void 0 : _proto$Query3.type) !== 'Service') { return; } return proto.Query; }).filter(Boolean); var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, { useSDKTypes: true, prototypes: { enabled: true, methods: { fromSDKJSON: false } } }); var context = new _encoding.GenericParseContext(refs[0], store, options); var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient'); expectCode(ast); }); it('returns any when !useSDKTypes && !prototypes.methods.fromJSON', function () { var packages = ['cosmos.bank.v1beta1', 'osmosis.gamm.v1beta1']; var refs = store.filterProtoWhere(function (ref) { return packages.includes(ref.proto["package"]); }); var services = refs.map(function (ref) { var _proto$Query4; var proto = (0, _utils.getNestedProto)(ref.traversed); if (!(proto !== null && proto !== void 0 && proto.Query) || ((_proto$Query4 = proto.Query) === null || _proto$Query4 === void 0 ? void 0 : _proto$Query4.type) !== 'Service') { return; } return proto.Query; }).filter(Boolean); var options = (0, _deepmerge["default"])(_types.defaultTelescopeOptions, { useSDKTypes: false, prototypes: { enabled: true, methods: { fromJSON: false } } }); var context = new _encoding.GenericParseContext(refs[0], store, options); var ast = (0, _class.createAggregatedLCDClient)(context, services, 'QueryClient'); expectCode(ast); });