UNPKG

@macalinao/codama-rename-visitor

Version:

Codama visitor for renaming instructions and events within a program

45 lines (40 loc) 1.27 kB
/// <reference types="bun-types" /> import { describe, expect, it } from "bun:test"; import type { ProgramNode, RootNode } from "codama"; import { camelCase, definedTypeNode, numberTypeNode, programNode, publicKeyTypeNode, rootNode, visit, } from "codama"; import { renameDefinedTypesVisitor } from "./rename-defined-types-visitor.js"; describe("renameDefinedTypesVisitor", () => { it("should rename defined types based on the mapping", () => { const program: ProgramNode = programNode({ name: camelCase("testProgram"), publicKey: "11111111111111111111111111111111", definedTypes: [ definedTypeNode({ name: camelCase("counter"), type: numberTypeNode("u64"), }), definedTypeNode({ name: camelCase("config"), type: publicKeyTypeNode(), }), ], }); const root = rootNode(program); const visitor = renameDefinedTypesVisitor({ counter: "counterAccount", config: "programConfig", }); const updatedRoot = visit(root, visitor) as RootNode; const types = updatedRoot.program.definedTypes; expect(types[0].name.toString()).toBe("counterAccount"); expect(types[1].name.toString()).toBe("programConfig"); }); });