Skip to content

Commit 035fb5a

Browse files
committed
Added beam open / close unit test
1 parent 188a8e2 commit 035fb5a

File tree

2 files changed

+73
-6
lines changed

2 files changed

+73
-6
lines changed

src/codec/chain/beam/beam.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,25 @@ import { Coin } from '../../cosmos/base/v1beta1/coin';
66
export const protobufPackage = 'lum.network.beam';
77

88
export enum BeamState {
9-
OPEN = 0,
10-
CANCELED = 1,
11-
CLOSED = 2,
9+
UNSPECIFIED = 0,
10+
OPEN = 1,
11+
CANCELED = 2,
12+
CLOSED = 3,
1213
UNRECOGNIZED = -1,
1314
}
1415

1516
export function beamStateFromJSON(object: any): BeamState {
1617
switch (object) {
1718
case 0:
19+
case 'UNSPECIFIED':
20+
return BeamState.UNSPECIFIED;
21+
case 1:
1822
case 'OPEN':
1923
return BeamState.OPEN;
20-
case 1:
24+
case 2:
2125
case 'CANCELED':
2226
return BeamState.CANCELED;
23-
case 2:
27+
case 3:
2428
case 'CLOSED':
2529
return BeamState.CLOSED;
2630
case -1:
@@ -32,6 +36,8 @@ export function beamStateFromJSON(object: any): BeamState {
3236

3337
export function beamStateToJSON(object: BeamState): string {
3438
switch (object) {
39+
case BeamState.UNSPECIFIED:
40+
return 'UNSPECIFIED';
3541
case BeamState.OPEN:
3642
return 'OPEN';
3743
case BeamState.CANCELED:

tests/client.test.ts

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { LumWallet, LumWalletFactory, LumClient, LumUtils, LumConstants, LumRegistry, LumTypes, LumMessages } from '../src';
22
import axios from 'axios';
3-
import { BeamData } from "../src/codec/chain/beam/beam";
3+
import { BeamData, BeamState } from "../src/codec/chain/beam/beam";
44

55
const randomString = (): string => {
66
return Math.random().toString(36).substring(7);
@@ -47,6 +47,67 @@ describe('LumClient', () => {
4747
await expect(clt.disconnect()).resolves.toBeTruthy();
4848
});
4949

50+
it('should open a beam and close it', async () => {
51+
const beamId = randomString();
52+
53+
let acc = await clt.getAccount(w1.getAddress());
54+
expect(acc).toBeTruthy();
55+
56+
const chainId = await clt.getChainId();
57+
const amount: LumTypes.Coin = {
58+
amount: '1',
59+
denom: LumConstants.MicroLumDenom,
60+
};
61+
62+
const fee = {
63+
amount: [{ denom: LumConstants.MicroLumDenom, amount: '1' }],
64+
gas: '100000',
65+
};
66+
67+
// Create the beam
68+
let doc = {
69+
accountNumber: acc.accountNumber,
70+
chainId,
71+
fee: fee,
72+
memo: 'Beam review transaction',
73+
messages: [LumMessages.BuildMsgOpenBeam(beamId, w1.getAddress(), '', amount, 'test', 'lum-network/review', null, 0, 0)],
74+
signers: [
75+
{
76+
accountNumber: acc.accountNumber,
77+
sequence: acc.sequence,
78+
publicKey: w1.getPublicKey(),
79+
},
80+
],
81+
};
82+
83+
const txCreate = await clt.signAndBroadcastTx(w1, doc);
84+
expect(txCreate.deliverTx.code).toBe(0);
85+
const beamAfterCreate = await clt.queryClient.beam.get(beamId);
86+
expect(beamAfterCreate.status).toBe(BeamState.OPEN);
87+
88+
// Update the beam
89+
acc = await clt.getAccount(w1.getAddress());
90+
doc = {
91+
accountNumber: acc.accountNumber,
92+
chainId,
93+
fee: fee,
94+
memo: 'Beam review transaction',
95+
messages: [LumMessages.BuildMsgUpdateBeam(beamId, w1.getAddress(), null, BeamState.CANCELED)],
96+
signers: [
97+
{
98+
accountNumber: acc.accountNumber,
99+
sequence: acc.sequence,
100+
publicKey: w1.getPublicKey(),
101+
},
102+
],
103+
};
104+
105+
const txUpdate = await clt.signAndBroadcastTx(w1, doc);
106+
expect(txUpdate.deliverTx.code).toBe(0);
107+
const beamAfterUpdate = await clt.queryClient.beam.get(beamId);
108+
expect(beamAfterUpdate.status).toBe(BeamState.CANCELED);
109+
});
110+
50111
it('should open a beam review transaction', async () => {
51112
const beamId = randomString();
52113

0 commit comments

Comments
 (0)