angular-cn/packages/zone.js/test
JiaLiPassion c2b4d92708 feat(zone.js): patch jasmine.createSpyObj to make properties enumerable to be true (#34624)
Close #33657

in jasmine 3.5, there is a new feature, user can pass a properties object to `jasmine.createSpyObj`

```
const spy = jasmine.createSpyObj('spy', ['method1'], {prop1: 'foo'});
expect(spy.prop1).toEqual('foo');
```

This case will not work for Angular TestBed, for example,

```
describe('AppComponent', () => {
  beforeEach(() => {

    //Note the third parameter
    // @ts-ignore
    const someServiceSpy = jasmine.createSpyObj('SomeService', ['someFunction'], ['aProperty']);

    TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
      providers: [
        {provide: SomeService, useValue: someServiceSpy},
      ]
    }).compileComponents();

  });

  it('should create the app', () => {
    //spyObj will have someFunction, but will not have aProperty
    let spyObj = TestBed.get(SomeService);
  });
```

Because `jasmine.createSpyObj` will create the `aProperty` with `enumerable=false`,
and `TestBed.configureTestingModule` will try to copy all the properties from spyObj to
the injected service instance. And because `enumerable` is false, so the property (here is aProperty)
will not be copied.

This PR will monkey patch the `jasmine.createSpyObj` and make sure the new property's
`enumerable=true`.

PR Close #34624
2020-06-29 12:22:08 -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): remove unused Promise overwritten setter logic (#36851) 2020-06-11 18:56:19 -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 build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04: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 build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04: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(zone.js): upgrade zone.js to angular package format(APF) (#36540) 2020-06-11 11:08:48 -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