msg_sender.spec.ts 1.9 KB

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