angular/packages/core/test
crisbeto 4e35e348af refactor(ivy): generate ngFactoryDef for injectables (#32433)
With #31953 we moved the factories for components, directives and pipes into a new field called `ngFactoryDef`, however I decided not to do it for injectables, because they needed some extra logic. These changes set up the `ngFactoryDef` for injectables as well.

For reference, the extra logic mentioned above is that for injectables we have two code paths:

1. For injectables that don't configure how they should be instantiated, we create a `factory` that proxies to `ngFactoryDef`:

```
// Source
@Injectable()
class Service {}

// Output
class Service {
  static ngInjectableDef = defineInjectable({
    factory: () => Service.ngFactoryFn(),
  });

  static ngFactoryFn: (t) => new (t || Service)();
}
```

2. For injectables that do configure how they're created, we keep the `ngFactoryDef` and generate the factory based on the metadata:

```
// Source
@Injectable({
  useValue: DEFAULT_IMPL,
})
class Service {}

// Output
export class Service {
  static ngInjectableDef = defineInjectable({
    factory: () => DEFAULT_IMPL,
  });

  static ngFactoryFn: (t) => new (t || Service)();
}
```

PR Close #32433
2019-10-02 13:04:26 -07:00
..
acceptance refactor(ivy): generate ngFactoryDef for injectables (#32433) 2019-10-02 13:04:26 -07:00
animation refactor(core): Migrate TestBed.get to TestBed.inject (#32382) 2019-09-09 19:10:54 -04:00
bundling build: update rxjs to 6.5.3 (#32812) 2019-10-01 14:56:45 -07:00
change_detection refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
debug fix(ivy): DebugNode throws exceptions when querying some properties (#32622) 2019-09-13 10:13:08 -07:00
di fix(core): make injector.get() return default value with InjectFlags.Self flag on (#27739) 2019-09-13 09:19:56 -07:00
dom refactor(core): move Meta methods that only have one version from DomAdapter (#32408) 2019-09-03 11:59:39 -07:00
linker fix(ivy): Only restore registered modules if user compiles modules with TestBed (#32944) 2019-10-01 17:17:47 -07:00
metadata test(core): update query-specific tests in core (#30626) 2019-05-23 10:31:32 -07:00
reflection fix(core): handle undefined meta in injectArgs (#31333) 2019-07-01 10:11:08 -07:00
render3 revert: feat(ivy): improve debugging experience for styles/classes (#32753) (#32841) 2019-09-24 16:57:58 -07:00
sanitization perf(core): make sanitization tree-shakable in Ivy mode (#31934) 2019-08-15 10:30:12 -07:00
strict_types build: update to nodejs rules 0.37.1 (#32151) 2019-09-25 11:29:12 -07:00
testability build: update zone.js to 0.9.0 (#28219) 2019-03-26 12:50:38 -07:00
util refactor(ivy): remove duplicated flatten util (#29547) 2019-03-27 12:36:23 -07:00
view refactor(core): Migrate TestBed.get to TestBed.inject (#32382) 2019-09-09 19:10:54 -04:00
zone build: extract interface and util sub compilation from core (#28028) 2019-01-10 16:31:44 -08:00
application_init_spec.ts fix(ivy): Enable AoT tests to run on CI; disable failing tests (#26975) 2018-11-07 10:35:20 -08:00
application_module_spec.ts build(core): remove main() from specs (#21053) 2017-12-22 13:10:51 -08:00
application_ref_integration_spec.ts fix(ivy): ensure that window.ng utilities are published when NgModules are used (#32725) 2019-09-17 13:32:06 -07:00
application_ref_spec.ts refactor(core): Migrate TestBed.get to TestBed.inject (#32382) 2019-09-09 19:10:54 -04:00
BUILD.bazel feat(ivy): i18n - reorganize entry-points for better reuse (#32488) 2019-09-12 15:35:34 -07:00
component_fixture_spec.ts test(ivy): update root causes for @angular/core TestBed failures (#27370) 2018-11-30 13:41:21 -08:00
dev_mode_spec.ts build(core): remove main() from specs (#21053) 2017-12-22 13:10:51 -08:00
directive_lifecycle_integration_spec.ts test(ivy): update root causes for @angular/core TestBed failures (#27419) 2018-12-03 08:19:56 -08:00
error_handler_spec.ts refactor(ivy): refactor more files in DI to prepare it for bazel packages (#28098) 2019-01-14 09:55:30 -08:00
event_emitter_spec.ts fix(core): fix proper propagation of subscriptions in EventEmitter (#22016) 2018-02-06 07:56:33 -08:00
fake_async_spec.ts fix(ivy): update token used for fakeAsync test (#28383) 2019-01-29 16:39:14 -08:00
forward_ref_integration_spec.ts refactor(core): Migrate TestBed.get to TestBed.inject (#32382) 2019-09-09 19:10:54 -04:00
spies.ts refactor: Move dom_adapter.ts to @angular/common (#32154) 2019-08-29 21:51:56 -07:00
test_bed_async_spec.ts fix(ivy): stub TestBed.compileComponents implementation (#26506) 2018-10-17 13:08:14 -07:00
test_bed_spec.ts fix(ivy): Only restore registered modules if user compiles modules with TestBed (#32944) 2019-10-01 17:17:47 -07:00
testing_internal_spec.ts build: update to rules_typescript 0.25.1 (#28625) 2019-02-21 07:46:21 -08:00
util_spec.ts build: extract interface and util sub compilation from core (#28028) 2019-01-10 16:31:44 -08:00