@@ -52,6 +52,16 @@ describe("schema", () => {
5252 const data = { userId : "u1" , fileName : "doc" , typeOfFile : "PDF" , markdown : "text" } ;
5353 expect ( schema . safeParse ( data ) . success ) . toBe ( false ) ;
5454 } ) ;
55+
56+ it ( "validates a request with a variables map" , ( ) => {
57+ const data = [ { userId : "u1" , fileName : "doc" , typeOfFile : "PDF" , markdown : "text" , variables : { lang : "ko" , CJKmainfont : "Noto Sans CJK KR" } } ] ;
58+ expect ( schema . safeParse ( data ) . success ) . toBe ( true ) ;
59+ } ) ;
60+
61+ it ( "rejects variables with non-string values" , ( ) => {
62+ const data = [ { userId : "u1" , fileName : "doc" , typeOfFile : "PDF" , markdown : "text" , variables : { lang : 42 } } ] ;
63+ expect ( schema . safeParse ( data ) . success ) . toBe ( false ) ;
64+ } ) ;
5565} ) ;
5666
5767describe ( "handler" , ( ) => {
@@ -95,6 +105,18 @@ describe("handler", () => {
95105 expect ( result . statusCode ) . toBe ( 200 ) ;
96106 } ) ;
97107
108+ it ( "passes variables as --variable flags to Pandoc" , async ( ) => {
109+ const executeMock = vi . fn ( ) . mockResolvedValue ( "" ) ;
110+ vi . mocked ( PdcTs ) . mockImplementationOnce ( ( ) => ( { Execute : executeMock } ) as any ) ;
111+
112+ const event = [ { userId : "user1" , fileName : "test-doc" , typeOfFile : "TEX" , markdown : "# Hello" , variables : { lang : "ko" , CJKmainfont : "Noto Sans CJK KR" } } ] ;
113+ await handler ( event as any ) ;
114+
115+ const calledArgs : string [ ] = executeMock . mock . calls [ 0 ] ?. [ 0 ] ?. pandocArgs ?? [ ] ;
116+ expect ( calledArgs ) . toContain ( "--variable=lang:ko" ) ;
117+ expect ( calledArgs ) . toContain ( "--variable=CJKmainfont:Noto Sans CJK KR" ) ;
118+ } ) ;
119+
98120 it ( "returns 500 when Pandoc execution fails" , async ( ) => {
99121 vi . mocked ( PdcTs ) . mockImplementationOnce ( ( ) => ( {
100122 Execute : vi . fn ( )
0 commit comments