@cosmology/ast
Version:
Cosmos TypeScript AST generation
80 lines (70 loc) • 2.19 kB
text/typescript
import cases from 'jest-in-case';
import { getPluginValue } from './plugins';
const options = {
includeAminos: false,
includeLCDClients: false,
timestampFormat: false,
aminoEncoding: {
enabled: true
},
packages: {
cosmos: {
timestampFormat: true
},
'cosmos.v1beta1.tx': {
includeAminos: false,
timestampFormat: false
},
'cosmos.v1beta1': {
includeAminos: true,
},
osmosis: {
aminoCasing: 'camel'
},
akash: {
aminoEncoding: {
enabled: false
}
},
nebula: {
some: {
pkg: {
aminoEncoding: {
enabled: false
}
}
}
}
}
};
cases('timestampFormat', opts => {
const val = getPluginValue(opts.prop, opts.name, options);
expect(val).toMatchSnapshot();
}, [
{ name: 'cosmos.v1beta1.tx', prop: 'timestampFormat' },
{ name: 'cosmos.v1beta1', prop: 'timestampFormat' },
{ name: 'cosmos.v1beta1.other', prop: 'timestampFormat' },
{ name: 'cosmos', prop: 'timestampFormat' },
]);
cases('aminoEncoding', opts => {
const val = getPluginValue(opts.prop, opts.name, options);
expect(val).toMatchSnapshot();
}, [
{ name: 'cosmos.v1beta1', prop: 'aminoEncoding' },
{ name: 'cosmos', prop: 'aminoEncoding' },
{ name: 'akash', prop: 'aminoEncoding' },
{ name: 'nebula', prop: 'aminoEncoding' },
{ name: 'nebula.some', prop: 'aminoEncoding' },
{ name: 'nebula.some.pkg', prop: 'aminoEncoding' },
]);
cases('aminoEncoding.enabled', opts => {
const val = getPluginValue(opts.prop, opts.name, options);
expect(val).toMatchSnapshot();
}, [
{ name: 'cosmos.v1beta1', prop: 'aminoEncoding.enabled' },
{ name: 'cosmos', prop: 'aminoEncoding.enabled' },
{ name: 'akash', prop: 'aminoEncoding.enabled' },
{ name: 'nebula', prop: 'aminoEncoding.enabled' },
{ name: 'nebula.some', prop: 'aminoEncoding.enabled' },
{ name: 'nebula.some.pkg', prop: 'aminoEncoding.enabled' },
]);