@@ -37,10 +37,13 @@ for (const executionMode of ["worker", "inline"] as const) {
3737 nativeShimModule : SHIM ,
3838 } ) ;
3939 await backend . start ( ) ;
40- assert . ok ( backend . commitScrollback !== undefined ) ;
41- await backend . commitScrollback ( makeClearDrawlist ( ) , 2 ) ;
42- await backend . stop ( ) ;
43- backend . dispose ( ) ;
40+ try {
41+ assert . ok ( backend . commitScrollback !== undefined ) ;
42+ await backend . commitScrollback ( makeClearDrawlist ( ) , 2 ) ;
43+ } finally {
44+ await backend . stop ( ) ;
45+ backend . dispose ( ) ;
46+ }
4447 } ) ;
4548
4649 test ( `scrollback: ${ executionMode } path surfaces engine rejection` , async ( ) => {
@@ -49,15 +52,18 @@ for (const executionMode of ["worker", "inline"] as const) {
4952 nativeShimModule : SHIM ,
5053 } ) ;
5154 await backend . start ( ) ;
52- await assert . rejects (
53- backend . commitScrollback ?.( makeClearDrawlist ( ) , 99 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
54- ( err : unknown ) =>
55- err instanceof ZrUiError &&
56- err . code === "ZRUI_BACKEND_ERROR" &&
57- err . message . includes ( "engine_commit_scrollback failed" ) ,
58- ) ;
59- await backend . stop ( ) ;
60- backend . dispose ( ) ;
55+ try {
56+ await assert . rejects (
57+ backend . commitScrollback ?.( makeClearDrawlist ( ) , 99 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
58+ ( err : unknown ) =>
59+ err instanceof ZrUiError &&
60+ err . code === "ZRUI_BACKEND_ERROR" &&
61+ err . message . includes ( "engine_commit_scrollback failed" ) ,
62+ ) ;
63+ } finally {
64+ await backend . stop ( ) ;
65+ backend . dispose ( ) ;
66+ }
6167 } ) ;
6268
6369 test ( `scrollback: ${ executionMode } path accepts runtime inline rows` , async ( ) => {
@@ -66,13 +72,16 @@ for (const executionMode of ["worker", "inline"] as const) {
6672 nativeShimModule : SHIM ,
6773 } ) ;
6874 await backend . start ( ) ;
69- assert . ok ( backend . setInlineRows !== undefined ) ;
70- /* The strict shim only accepts inlineRows=5 with plat.screenMode=1, so a
71- resolving call proves the runtime payload reached the engine intact. */
72- await backend . setInlineRows ( 5 ) ;
73- await backend . commitScrollback ?.( makeClearDrawlist ( ) , 1 ) ;
74- await backend . stop ( ) ;
75- backend . dispose ( ) ;
75+ try {
76+ assert . ok ( backend . setInlineRows !== undefined ) ;
77+ /* The strict shim only accepts inlineRows=5 with plat.screenMode=1, so a
78+ resolving call proves the runtime payload reached the engine intact. */
79+ await backend . setInlineRows ( 5 ) ;
80+ await backend . commitScrollback ?.( makeClearDrawlist ( ) , 1 ) ;
81+ } finally {
82+ await backend . stop ( ) ;
83+ backend . dispose ( ) ;
84+ }
7685 } ) ;
7786
7887 test ( `scrollback: ${ executionMode } path validates inline rows client-side` , async ( ) => {
@@ -81,12 +90,15 @@ for (const executionMode of ["worker", "inline"] as const) {
8190 nativeShimModule : SHIM ,
8291 } ) ;
8392 await backend . start ( ) ;
84- await assert . rejects (
85- backend . setInlineRows ?.( 0 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
86- ( err : unknown ) => err instanceof ZrUiError && err . code === "ZRUI_INVALID_PROPS" ,
87- ) ;
88- await backend . stop ( ) ;
89- backend . dispose ( ) ;
93+ try {
94+ await assert . rejects (
95+ backend . setInlineRows ?.( 0 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
96+ ( err : unknown ) => err instanceof ZrUiError && err . code === "ZRUI_INVALID_PROPS" ,
97+ ) ;
98+ } finally {
99+ await backend . stop ( ) ;
100+ backend . dispose ( ) ;
101+ }
90102 } ) ;
91103}
92104
@@ -96,16 +108,19 @@ test("scrollback: alt-mode backend rejects commit and rows APIs", async () => {
96108 nativeShimModule : SHIM ,
97109 } ) ;
98110 await backend . start ( ) ;
99- await assert . rejects (
100- backend . commitScrollback ?.( makeClearDrawlist ( ) , 1 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
101- ( err : unknown ) =>
102- err instanceof ZrUiError && err . message . includes ( 'requires screen.mode "inline"' ) ,
103- ) ;
104- await assert . rejects (
105- backend . setInlineRows ?.( 5 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
106- ( err : unknown ) =>
107- err instanceof ZrUiError && err . message . includes ( 'requires screen.mode "inline"' ) ,
108- ) ;
109- await backend . stop ( ) ;
110- backend . dispose ( ) ;
111+ try {
112+ await assert . rejects (
113+ backend . commitScrollback ?.( makeClearDrawlist ( ) , 1 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
114+ ( err : unknown ) =>
115+ err instanceof ZrUiError && err . message . includes ( 'requires screen.mode "inline"' ) ,
116+ ) ;
117+ await assert . rejects (
118+ backend . setInlineRows ?.( 5 ) ?? Promise . reject ( new Error ( "missing" ) ) ,
119+ ( err : unknown ) =>
120+ err instanceof ZrUiError && err . message . includes ( 'requires screen.mode "inline"' ) ,
121+ ) ;
122+ } finally {
123+ await backend . stop ( ) ;
124+ backend . dispose ( ) ;
125+ }
111126} ) ;
0 commit comments