sammy
sammy copied to clipboard
Nested 'then' not working properly. Fixed
In previous version nested then didn't work at expected:
context.load("templates/home.template"
).then(function(){
context.log("1");
this.load("templates/home.template"
).then(function(){
context.log("2");
this.load("templates/home.template"
).then(function(){
context.log("3");
this.load("templates/home.template"
).then(function(){
context.log("3a");
}).then(function(){
context.log("3b");
});
});
}).then(function(){
context.log("4");
});
}).then(function(){
context.log("5");
}).then(function(){
context.log("6");
this.load("templates/home.template"
).then(function(){
context.log("7");
this.load("templates/home.template"
).then(function(){
context.log("8");
});
}).then(function(){
context.log("9");
});
});
returns:
[Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 1 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 5 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 6 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 2 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 4 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 7 sammy.js:97 [Fri Jun 07 2013 16:47:28 GMT+0200 (CEST)] 9 sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3 sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 8 sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3a sammy.js:97 [Fri Jun 07 2013 16:47:39 GMT+0200 (CEST)] 3b sammy.js:97
With the change it outputs what we expect:
[Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 1 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 2 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3a sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 3b sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 4 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 5 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 6 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 7 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 8 sammy.js:97 [Fri Jun 07 2013 16:48:41 GMT+0200 (CEST)] 9 sammy.js:97
Can you please add a test for this?
How do i do it?
Look at the other tests. You might push different strings on to an array in the nested thens and then check afterwards that the strings are in the correct order. If the test fails before the change and works after, it's most likely correct (: Probably somewhere in render_context_spec.js. To run the tests, just run ruby test/test_server
.
As I posted, I made a test and also send a patch to fix it... I don't really understand what you need.
@jah0wl I think he's looking for a code test, essentially what you have written out but in the spec
file so that it runs as part of the automated build process.