angular-cn/packages/zone.js/test
JiaLiPassion 96aa14df01 fix(zone.js): zone patch rxjs should return null _unsubscribe correctly. (#37091)
Close #31684.

In some rxjs operator, such as `retryWhen`, rxjs internally will set
`Subscription._unsubscribe` method to null, and the current zone.js monkey patch
didn't handle this case correctly, even rxjs set _unsubscribe to null, zone.js
still return a function by finding the prototype chain.

This PR fix this issue and the following test will pass.

```
const errorGenerator = () => {
  return throwError(new Error('error emit'));
};

const genericRetryStrategy = (finalizer: () => void) => (attempts: Observable<any>) =>
    attempts.pipe(
      mergeMap((error, i) => {
        const retryAttempt = i + 1;
        if (retryAttempt > 3) {
          return throwError(error);
        }
        return timer(retryAttempt * 1);
      }),
      finalize(() => finalizer()));

errorGenerator()
  .pipe(
    retryWhen(genericRetryStrategy(() => {
      expect(log.length).toBe(3);
      done();
    })),
    catchError(error => of(error)))
  .subscribe()
```

PR Close #37091
2020-07-27 12:10:27 -07:00
..
assets build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
closure build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
common fix(zone.js): clearTimeout/clearInterval should call on object global (#37858) 2020-07-24 15:22:47 -07:00
extra feat(zone.js): upgrade zone.js to angular package format(APF) (#36540) 2020-06-11 11:08:48 -07:00
jest fix(zone.js): zone.js patch jest should handle done correctly (#36022) 2020-04-07 15:22:16 -07:00
node fix(zone.js): patch nodejs EventEmtter.prototype.off (#37863) 2020-07-24 15:45:00 -07:00
npm_package feat(zone.js): move all zone optional bundles to plugins folders (#36540) 2020-06-11 11:08:48 -07:00
patch build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
performance build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
promise build: reformat repo to new clang@1.4.0 (#36613) 2020-04-14 12:08:36 -07:00
rxjs fix(zone.js): zone patch rxjs should return null _unsubscribe correctly. (#37091) 2020-07-27 12:10:27 -07:00
webdriver build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
zone-spec build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
BUILD.bazel feat(zone.js): upgrade zone.js to angular package format(APF) (#36540) 2020-06-11 11:08:48 -07:00
browser-env-setup.ts build: move zone.js to angular repo (#30962) 2019-06-20 11:27:39 -07:00
browser-zone-setup.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_disable_wrap_uncaught_promise_rejection_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_disable_wrap_uncaught_promise_rejection_setup.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_es2015_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_shadydom_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_shadydom_setup.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
browser_symbol_setup.ts build: move zone.js to angular repo (#30962) 2019-06-20 11:27:39 -07:00
common_tests.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
fake_entry.js build: move zone.js to angular repo (#30962) 2019-06-20 11:27:39 -07:00
jasmine-patch.spec.ts feat(zone.js): patch jasmine.createSpyObj to make properties enumerable to be true (#34624) 2020-06-29 12:22:08 -07:00
karma_test.bzl feat(dev-infra): add bazel firefox browser with RBE compatibility (#38029) 2020-07-15 12:34:05 -07:00
main.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
mocha-patch.spec.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node-env-setup.ts build: move zone.js to angular repo (#30962) 2019-06-20 11:27:39 -07:00
node_bluebird_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node_entry_point_no_patch_clock.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node_error_disable_policy_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node_error_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node_error_lazy_policy_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
node_tests.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
saucelabs.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
test-env-setup-jasmine-no-patch-clock.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
test-env-setup-jasmine.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
test-env-setup-mocha.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
test-util.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
test_fake_polyfill.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
ws-client.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
ws-server.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
ws-webworker-context.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
wtf_mock.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
zone_worker_entry_point.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00