github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/js/src/test/solts.test.ts (about)

     1  import * as assert from 'assert';
     2  import { readEvents } from '../events';
     3  import { Addition } from '../solts/sol/Addition.abi';
     4  import { Eventer } from '../solts/sol/Eventer.abi';
     5  import { NegationLib } from '../solts/sol/NegationLib.abi';
     6  import { client } from './test';
     7  
     8  describe('solts', () => {
     9    it('can deploy and call from codegen', async () => {
    10      const libraries = { NegationLib: await NegationLib.deploy({ client }) };
    11      const adder = await Addition.deployContract({ client, libraries: libraries, withContractMeta: true });
    12      const { sum } = await adder.functions.add(2342, 23432);
    13      assert.strictEqual(sum, 25774);
    14    });
    15  
    16    it('can receive events', async () => {
    17      const eventer = await Eventer.deployContract({ client, withContractMeta: true });
    18      await eventer.functions.announce();
    19      await eventer.functions.announce();
    20      await eventer.functions.announce();
    21      const events = await readEvents(eventer.listeners.Init);
    22      assert.strictEqual(events.length, 3);
    23      const event = events[0];
    24      assert.strictEqual(event.controller, 'C9F239591C593CB8EE192B0009C6A0F2C9F8D768');
    25      assert.strictEqual(event.metadata, 'bacon,beans,eggs,tomato');
    26    });
    27  
    28    it('can listen to multiple events', async () => {
    29      const eventer = await Eventer.deployContract({ client, withContractMeta: true });
    30      await eventer.functions.announce();
    31      await eventer.functions.announce();
    32      const listener = eventer.listenerFor(['MonoRampage', 'Init']);
    33      const events = await readEvents(listener);
    34      assert.strictEqual(events.length, 4);
    35      // Look ma, type narrowing!
    36      events.map((event) => {
    37        if (event.name === 'Init') {
    38          const eventId = Buffer.from('6576656E74310000000000000000000000000000000000000000000000000000', 'hex');
    39          assert.deepStrictEqual(event.payload.eventId, eventId);
    40        } else if (event.name === 'MonoRampage') {
    41          assert.strictEqual(event.payload.timestamp, 123);
    42        }
    43      });
    44    });
    45  });