errors.spec.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { TransactionError } from '@solana/solidity';
  2. import expect from 'expect';
  3. import { loadContract } from './setup';
  4. describe('Testing errors', function () {
  5. this.timeout(500000);
  6. it('errors', async function () {
  7. const { contract } = await loadContract('errors', 'errors.abi')
  8. let res = await contract.functions.do_revert(false);
  9. expect(Number(res.result)).toEqual(3124445);
  10. try {
  11. res = await contract.functions.do_revert(true, { simulate: true });
  12. } catch (e) {
  13. expect(e).toBeInstanceOf(TransactionError);
  14. if (e instanceof TransactionError) {
  15. expect(e.message).toBe('Do the revert thing');
  16. expect(e.computeUnitsUsed).toBeGreaterThan(1400);
  17. expect(e.computeUnitsUsed).toBeLessThan(1600);
  18. expect(e.logs.length).toBeGreaterThan(1);
  19. }
  20. return;
  21. }
  22. try {
  23. res = await contract.functions.do_revert(true);
  24. } catch (e) {
  25. expect(e).toBeInstanceOf(TransactionError);
  26. if (e instanceof TransactionError) {
  27. expect(e.message).toBe('Do the revert thing');
  28. expect(e.computeUnitsUsed).toBeGreaterThan(1400);
  29. expect(e.computeUnitsUsed).toBeLessThan(1600);
  30. expect(e.logs.length).toBeGreaterThan(1);
  31. }
  32. return;
  33. }
  34. });
  35. });