angular/packages/core/test
Andrew Scott 83a3b85c35 refactor(core): Do not refresh view if producers did not actually change (#52476)
Producers represent values which can deliver change notifications.
When a producer value is changed, a change notification is propagated through the graph,
notifying live consumers which depend on the producer of the potential update.
Note here that this is a _potential_ update.

A producer may not have actually "changed" based on its equality function. With
this commit, before refreshing a view that is only marked for refresh
because its consumer is dirty, we poll producers for change to see if
they really have. If not, we can skip the refresh. The example test in this commit
shows that a `computed` which depends on a `signal` that is updated but
produces a value that is the same as before will _not_ cause the
component's template to refresh.

fixes #51797

PR Close #52476
2023-11-02 13:23:49 -07:00
..
acceptance refactor(core): Do not refresh view if producers did not actually change (#52476) 2023-11-02 13:23:49 -07:00
animation refactor(animations): deprecation of AnimationDriver.NOOP (#51843) 2023-09-22 12:15:45 -07:00
bundling refactor(core): Do not refresh view if producers did not actually change (#52476) 2023-11-02 13:23:49 -07:00
change_detection test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
compiler build: ensure bootstrap transitive runfiles are made available (#48521) 2022-12-19 19:50:41 +00:00
debug test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
di test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
dom test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
hydration refactor(core): adding hydration for content projection (#49454) 2023-03-21 17:42:53 +01:00
i18n test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
linker test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
metadata test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
reflection refactor(core): remove unused logic from reflection capabilities (#45335) 2022-03-24 11:02:39 -07:00
render3 fix(core): effects wait for ngOnInit for their first run (#52473) 2023-11-01 08:07:35 -07:00
sanitization test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
signals refactor(core): short-circuits invocations of signals equality (#52465) 2023-11-02 10:59:59 -07:00
strict_types refactor(core): rename ...WithMeta types to ...Declaration and alias to unknown (#41119) 2021-03-22 08:57:18 -07:00
testability test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
util test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
zone test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
application_config_spec.ts feat(core): add mergeApplicationConfig method (#49253) 2023-03-01 11:20:31 -08:00
application_init_spec.ts refactor(core): throw an error when APP_INITIALIZER token is not an array. (#49860) 2023-04-23 18:31:24 -07:00
application_module_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
application_ref_integration_spec.ts refactor(platform-browser): update renderer to be able to remove ServerRendererFactory2 and EmulatedEncapsulationServerRenderer2 (#49630) 2023-04-05 11:42:57 -07:00
application_ref_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
BUILD.bazel build: bundle tests for karma web test suites (#48521) 2022-12-19 19:50:42 +00:00
component_fixture_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
defer_fixture_spec.ts refactor(core): ignore after and minimum when transition between states in tests (#52314) 2023-10-24 09:25:13 -07:00
dev_mode_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
directive_lifecycle_integration_spec.ts refactor(core): cleanup type any (#48623) 2023-01-04 12:15:16 -08:00
error_handler_spec.ts refactor(core): remove unused error handler logic (#46216) 2022-06-02 13:40:16 -07:00
event_emitter_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
fake_async_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00
forward_ref_integration_spec.ts refactor(core): handle #24571 todos. (#49221) 2023-06-14 12:33:44 +02:00
runtime_error_spec.ts refactor(core): improve error message when dom node is not found (#49977) 2023-04-25 09:29:47 -07:00
test_bed_effect_spec.ts fix(core): effects wait for ngOnInit for their first run (#52473) 2023-11-01 08:07:35 -07:00
test_bed_spec.ts feat(core): implement new block syntax (#51891) 2023-09-26 09:10:04 -07:00
transfer_state_spec.ts refactor(core): simplify state transfer escaping (#50201) 2023-05-10 11:31:34 -07:00
util_spec.ts test(core): clean up unnecessary nesting in old tests (#52239) 2023-10-19 09:26:15 -07:00