aleoflow 0.1.1

A developer CLI for Aleo — scaffold, build, test, audit, deploy, and generate TypeScript bindings for Leo programs.
// Test file for the {{PROJECT_NAME}} token program.
// Tests: mint creates a Token record, and transfer correctly splits one.

import {{PROJECT_NAME}}.aleo;

program test_program.aleo {
    @noupgrade
    constructor() {}

    @test
    fn test_mint() {
        let token = {{PROJECT_NAME}}.aleo::mint(self.caller, 100u64);
        assert_eq(token.amount, 100u64);
        assert_eq(token.owner, self.caller);
    }

    @test
    fn test_transfer() {
        // Mint a token to the test signer, then transfer part of it to
        // a distinct receiver address.
        let token = {{PROJECT_NAME}}.aleo::mint(self.caller, 100u64);
        let receiver = aleo172leh6aw467q7jzer533wcj8dzzsat3kr446g3nys3pmgqljcs8sfea3eh;
        let (remaining, transferred) = {{PROJECT_NAME}}.aleo::transfer(
            token,
            receiver,
            30u64,
        );
        assert_eq(remaining.amount, 70u64);
        assert_eq(remaining.owner, self.caller);
        assert_eq(transferred.amount, 30u64);
        assert_eq(transferred.owner, receiver);
    }
}