-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(autocomplete): panel not being shown with delay and OnPush change detection #3977
fix(autocomplete): panel not being shown with delay and OnPush change detection #3977
Conversation
… detection Fixes an issue that prevented the autocomplete panel from being shown if the options are initialized with a delay in a component that has `OnPush` change detection. Fixes angular#3955.
let visibleClass = 'mat-autocomplete-visible'; | ||
|
||
fixture.detectChanges(); | ||
expect(panel.classList).toContain(visibleClass, `Expected panel to be visible.`); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this Promise
ever resolve? Don't you need another flushMicroTasks
to make it run?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe that the tick calls flushMicrotasks under the hood.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah a tick
should automatically clear the event-loop queue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What I mean is that you're calling tick
before kicking off the promise.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reconfirmed that it resolves and the test breaks as expected if I remove the newly-added markForCheck
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Fixes an issue that prevented the autocomplete panel from being shown if the options are initialized with a delay in a component that has
OnPush
change detection.Fixes #3955.