ProgramNode.test.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import {
  2. accountNode,
  3. constantPdaSeedNodeFromProgramId,
  4. definedTypeNode,
  5. errorNode,
  6. instructionNode,
  7. pdaLinkNode,
  8. pdaNode,
  9. programNode,
  10. structTypeNode,
  11. } from '@codama/nodes';
  12. import { expect, test } from 'vitest';
  13. import { programNodeFromAnchorV00 } from '../../src';
  14. test('it creates program nodes', () => {
  15. const node = programNodeFromAnchorV00({
  16. accounts: [{ name: 'myAccount', seeds: [{ kind: 'programId' }], type: { fields: [], kind: 'struct' } }],
  17. errors: [{ code: 42, msg: 'my error message', name: 'myError' }],
  18. instructions: [{ accounts: [], args: [], name: 'myInstruction' }],
  19. metadata: { address: '1111', origin: 'shank' },
  20. name: 'myProgram',
  21. types: [{ name: 'myType', type: { fields: [], kind: 'struct' } }],
  22. version: '1.2.3',
  23. });
  24. expect(node).toEqual(
  25. programNode({
  26. accounts: [accountNode({ name: 'myAccount', pda: pdaLinkNode('myAccount') })],
  27. definedTypes: [definedTypeNode({ name: 'myType', type: structTypeNode([]) })],
  28. errors: [
  29. errorNode({
  30. code: 42,
  31. docs: ['myError: my error message'],
  32. message: 'my error message',
  33. name: 'myError',
  34. }),
  35. ],
  36. instructions: [instructionNode({ name: 'myInstruction' })],
  37. name: 'myProgram',
  38. origin: 'shank',
  39. pdas: [pdaNode({ name: 'myAccount', seeds: [constantPdaSeedNodeFromProgramId()] })],
  40. publicKey: '1111',
  41. version: '1.2.3',
  42. }),
  43. );
  44. });