@@ -88,20 +88,20 @@ export function updateUntilIdle<Model, Msg, T>(
8888 fun : Trigger < Model , Msg , T > ,
8989) : Promise < [ Model , T ] > {
9090 return new Promise ( ( resolve ) => {
91- fun ( < Program { ...testableProps ( resolve , props , fun ) } /> ) ;
91+ let wrapper = fun ( < Program { ...testableProps ( resolve , props , ( ) => wrapper ) } /> ) ;
9292 } ) ;
9393}
9494
9595function testableProps < Model , Msg , T > (
9696 resolve : ResolveType < Model , T > ,
9797 props : ProgramProps < Model , Msg > ,
98- fun : Trigger < Model , Msg , T > ,
98+ getWrapper : ( ) => T ,
9999) {
100100 const tprops : ProgramProps < TestableModel < Model , Msg , T > , Msg > = {
101101 init : initTestable ( resolve , props . init ) ,
102102 view : viewTestable ( props . view ) ,
103103 update : updateTestable ( props . update ) ,
104- subscriptions : subscriptionsTestable ( props , fun ) ,
104+ subscriptions : subscriptionsTestable ( props , getWrapper ) ,
105105 } ;
106106 return tprops ;
107107}
@@ -152,19 +152,12 @@ function updateTestable<Model, Msg, T>(
152152
153153function subscriptionsTestable < Model , Msg , T > (
154154 props : ProgramProps < Model , Msg > ,
155- fun : Trigger < Model , Msg , T > ,
155+ getWrapper : ( ) => T ,
156156) : ProgramProps < TestableModel < Model , Msg , T > , Msg > [ 'subscriptions' ] {
157157 return ( model : TestableModel < Model , Msg , T > ) => {
158158 const subs = props . subscriptions ( model . model ) ;
159159 if ( model . cmds . length === 0 ) {
160- const result = fun (
161- < Program
162- init = { ( ) => [ model . model , Cmd . none ( ) ] }
163- update = { ( msg , model ) => [ model , Cmd . none ( ) ] }
164- view = { ( d , m ) => props . view ( d , m ) }
165- subscriptions = { ( d ) => Sub . none ( ) }
166- /> ,
167- ) ;
160+ const result = getWrapper ( ) ;
168161 model . resolve ( [ model . model , result ] ) ;
169162 return subs ;
170163 }
0 commit comments