import tap from "tap" ; import { readFileBuffer } from "../util" ; import * as capnp from "capnp-ts" ; import * as Schema from "capnp-ts/src/std/schema.capnp.js" ; import { createValueExpression } from "../../src/ast-creators" ; import ts from "typescript" ; const TEST_REQUEST = readFileBuffer ( "test/data/test-request.bin" ) ; void tap . test ( "createValueExpression" , ( t ) => { const m = new capnp . Message ( TEST_REQUEST , false ) ; const node = m . getRoot ( Schema . CodeGeneratorRequest ) . getNodes ( ) . find ( ( n ) => n . getDisplayName ( ) . split ( ":" ) [ 1 ] === "TestDefaults" ) ; if ( node === undefined ) { t . fail ( ) ; return ; } const value = node . getStruct ( ) . getFields ( ) . get ( 29 ) . getSlot ( ) . getDefaultValue ( ) ; const printer = ts . createPrinter ( ) ; const sourceFile = ts . createSourceFile ( "" , "" , ts . ScriptTarget . ES2017 ) ; t . equal ( printer . printNode ( ts . EmitHint . Expression , createValueExpression ( value ) , sourceFile ) , "capnp.readRawPointer(new Uint8Array([0x10, 0x07, 0x11, 0x01, 0x1e, 0x11, 0x09, 0x32, 0x11, 0x09, 0x32, " + "0x11, 0x09, 0x2a, 0x1f, 0x70, 0x6c, 0x75, 0x67, 0x68, 0x1f, 0x78, 0x79, 0x7a, 0x7a, 0x79, 0x0f, 0x74, 0x68, " + "0x75, 0x64]).buffer)" ) ; t . end ( ) ; } ) ;