mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-18 07:50:22 +00:00
When $timeout#flush is called with a delay and no task can be flushed within that
delay, the current time should not be updated as that gets the mock into an inconsistent
state.
BREAKING CHANGE: if a tests was written around the buggy behavior the delays might be off now
This would typically not be a problem, but because of the previous breaking change in
$timeout.flush, the combination of two might be confusing and that's why we are documenting
it.
Old behavior:
```
doSomething(); //schedules task to execute in 500ms from now
doOtherStuff(); //schedules task to execute in 600ms from now
try {
$timeout.flush(300); // throws "no task to be flushed" exception
} catch(e) {};
$time.flush(200); //flushes only doSomething() task
```
New behavior:
```
doSomething(); //schedules task to execute in 500ms from now
doOtherStuff(); //schedules task to execute in 600ms from now
try {
$timeout.flush(300); // throws "no task to be flushed" exception
} catch(e) {};
$time.flush(200); // throws "no task to be flushed" exception again
// because previous exception didn't move the time forward
```
Fixed test:
```
doSomething(); //schedules task to execute in 500ms from now
doOtherStuff(); //schedules task to execute in 600ms from now
try {
$timeout.flush(300); // throws "no task to be flushed" exception
} catch(e) {};
$time.flush(500); // flushes only doSomething() task
```
|
||
|---|---|---|
| .. | ||
| auto | ||
| helpers | ||
| ng | ||
| ngAnimate | ||
| ngCookies | ||
| ngMock | ||
| ngResource | ||
| ngRoute | ||
| ngSanitize | ||
| ngScenario | ||
| ngTouch | ||
| AngularSpec.js | ||
| ApiSpecs.js | ||
| BinderSpec.js | ||
| jqLiteSpec.js | ||
| jquery_alias.js | ||
| jquery_remove.js | ||
| jQueryPatchSpec.js | ||
| loaderSpec.js | ||
| minErrSpec.js | ||