Skip to content

Commit

Permalink
test: add clarity wire format tests
Browse files Browse the repository at this point in the history
  • Loading branch information
janniks committed Mar 7, 2024
1 parent b47cda9 commit 6ddc393
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions packages/transactions/tests/clarity.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ import { BytesReader } from '../src/bytesReader';
import {
bufferCV,
BufferCV,
clarityByteToType,
ClarityType,
clarityTypeToByte,
ClarityValue,
ClarityWireType,
contractPrincipalCV,
contractPrincipalCVFromStandard,
deserializeCV,
Expand Down Expand Up @@ -708,4 +711,71 @@ describe('Clarity Types', () => {
intTest; // avoid the "value is never read warning"
});
});

describe('Clarity type wire format', () => {
test(clarityTypeToByte.name, () => {
expect(clarityTypeToByte(ClarityType.Int)).toEqual(0x00);
expect(clarityTypeToByte(ClarityType.Int)).toEqual(ClarityWireType.int);

expect(clarityTypeToByte(ClarityType.UInt)).toEqual(0x01);
expect(clarityTypeToByte(ClarityType.UInt)).toEqual(ClarityWireType.uint);

expect(clarityTypeToByte(ClarityType.Buffer)).toEqual(0x02);
expect(clarityTypeToByte(ClarityType.Buffer)).toEqual(ClarityWireType.buffer);

expect(clarityTypeToByte(ClarityType.BoolTrue)).toEqual(0x03);
expect(clarityTypeToByte(ClarityType.BoolTrue)).toEqual(ClarityWireType.true);

expect(clarityTypeToByte(ClarityType.BoolFalse)).toEqual(0x04);
expect(clarityTypeToByte(ClarityType.BoolFalse)).toEqual(ClarityWireType.false);

expect(clarityTypeToByte(ClarityType.PrincipalStandard)).toEqual(0x05);
expect(clarityTypeToByte(ClarityType.PrincipalStandard)).toEqual(ClarityWireType.address);

expect(clarityTypeToByte(ClarityType.PrincipalContract)).toEqual(0x06);
expect(clarityTypeToByte(ClarityType.PrincipalContract)).toEqual(ClarityWireType.contract);

expect(clarityTypeToByte(ClarityType.ResponseOk)).toEqual(0x07);
expect(clarityTypeToByte(ClarityType.ResponseOk)).toEqual(ClarityWireType.ok);

expect(clarityTypeToByte(ClarityType.ResponseErr)).toEqual(0x08);
expect(clarityTypeToByte(ClarityType.ResponseErr)).toEqual(ClarityWireType.err);

expect(clarityTypeToByte(ClarityType.OptionalNone)).toEqual(0x09);
expect(clarityTypeToByte(ClarityType.OptionalNone)).toEqual(ClarityWireType.none);

expect(clarityTypeToByte(ClarityType.OptionalSome)).toEqual(0x0a);
expect(clarityTypeToByte(ClarityType.OptionalSome)).toEqual(ClarityWireType.some);

expect(clarityTypeToByte(ClarityType.List)).toEqual(0x0b);
expect(clarityTypeToByte(ClarityType.List)).toEqual(ClarityWireType.list);

expect(clarityTypeToByte(ClarityType.Tuple)).toEqual(0x0c);
expect(clarityTypeToByte(ClarityType.Tuple)).toEqual(ClarityWireType.tuple);

expect(clarityTypeToByte(ClarityType.StringASCII)).toEqual(0x0d);
expect(clarityTypeToByte(ClarityType.StringASCII)).toEqual(ClarityWireType.ascii);

expect(clarityTypeToByte(ClarityType.StringUTF8)).toEqual(0x0e);
expect(clarityTypeToByte(ClarityType.StringUTF8)).toEqual(ClarityWireType.utf8);
});

test(clarityByteToType.name, () => {
expect(clarityByteToType(0x00)).toEqual(ClarityType.Int);
expect(clarityByteToType(0x01)).toEqual(ClarityType.UInt);
expect(clarityByteToType(0x02)).toEqual(ClarityType.Buffer);
expect(clarityByteToType(0x03)).toEqual(ClarityType.BoolTrue);
expect(clarityByteToType(0x04)).toEqual(ClarityType.BoolFalse);
expect(clarityByteToType(0x05)).toEqual(ClarityType.PrincipalStandard);
expect(clarityByteToType(0x06)).toEqual(ClarityType.PrincipalContract);
expect(clarityByteToType(0x07)).toEqual(ClarityType.ResponseOk);
expect(clarityByteToType(0x08)).toEqual(ClarityType.ResponseErr);
expect(clarityByteToType(0x09)).toEqual(ClarityType.OptionalNone);
expect(clarityByteToType(0x0a)).toEqual(ClarityType.OptionalSome);
expect(clarityByteToType(0x0b)).toEqual(ClarityType.List);
expect(clarityByteToType(0x0c)).toEqual(ClarityType.Tuple);
expect(clarityByteToType(0x0d)).toEqual(ClarityType.StringASCII);
expect(clarityByteToType(0x0e)).toEqual(ClarityType.StringUTF8);
});
});
});

0 comments on commit 6ddc393

Please sign in to comment.