chain_extension.spec.ts 1.3 KB

123456789101112131415161718192021222324252627
  1. // SPDX-License-Identifier: Apache-2.0
  2. import expect from 'expect';
  3. import { createConnection, deploy, aliceKeypair, query, } from './index';
  4. import { ContractPromise } from '@polkadot/api-contract';
  5. import { daveKeypair } from './index';
  6. describe('Test the FetchRandom chain extension from the ink! examples', () => {
  7. it('Calls the FetchRandom output multiple times and tests the output ', async function () {
  8. this.timeout(50000);
  9. const conn = await createConnection();
  10. const alice = aliceKeypair();
  11. const deployed_contract = await deploy(conn, alice, 'ChainExtension.contract', 0n);
  12. const contract = new ContractPromise(conn, deployed_contract.abi, deployed_contract.address);
  13. const seeded_with_alice_1 = await query(conn, alice, contract, "fetchRandom", [alice.addressRaw]);
  14. const seeded_with_dave = await query(conn, alice, contract, "fetchRandom", [daveKeypair().addressRaw]);
  15. const seeded_with_alice_2 = await query(conn, alice, contract, "fetchRandom", [alice.addressRaw]);
  16. expect(seeded_with_alice_1.output?.toJSON()).toEqual(seeded_with_alice_2.output?.toJSON());
  17. expect(seeded_with_alice_1.output?.toJSON()).not.toEqual(seeded_with_dave.output?.toJSON());
  18. conn.disconnect();
  19. });
  20. });