msg_sender.spec.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import expect from "expect";
  2. import { aliceKeypair, createConnection, deploy, weight, transaction, query } from "./index";
  3. import { ContractPromise } from "@polkadot/api-contract";
  4. import { DecodedEvent } from "@polkadot/api-contract/types";
  5. import { ApiPromise } from "@polkadot/api";
  6. describe('Deploy mytoken contract and test', () => {
  7. let conn: ApiPromise
  8. beforeEach(async function () {
  9. conn = await createConnection();
  10. });
  11. afterEach(async function () {
  12. await conn.disconnect();
  13. });
  14. it('mytoken', async function () {
  15. this.timeout(100000);
  16. const alice = aliceKeypair();
  17. let deployed_contract = await deploy(conn, alice, 'mytoken.contract', BigInt(0));
  18. let contract = new ContractPromise(conn, deployed_contract.abi, deployed_contract.address);
  19. let res = await query(conn, alice, contract, "test", [alice.address, true]);
  20. expect(res.output?.toJSON()).toEqual(alice.address);
  21. res = await query(conn, alice, contract, "test", [alice.address, false]);
  22. expect(res.output?.toJSON()).toEqual(alice.address);
  23. });
  24. it('mytokenEvent', async function () {
  25. this.timeout(100000);
  26. const alice = aliceKeypair();
  27. let deployed_contract = await deploy(conn, alice, 'mytokenEvent.contract', BigInt(0));
  28. let contract = new ContractPromise(conn, deployed_contract.abi, deployed_contract.address);
  29. let gasLimit = await weight(conn, contract, "test");
  30. let tx = contract.tx.test({ gasLimit });
  31. let res0: any = await transaction(tx, alice);
  32. let events: DecodedEvent[] = res0.contractEvents;
  33. expect(events.length).toEqual(1);
  34. expect(events[0].event.identifier).toBe("mytokenEvent::Debugging");
  35. expect(events[0].args.map(a => a.toJSON())).toEqual([alice.address]);
  36. });
  37. });