Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('should clear the timeouts on touchend', fakeAsync(() => {
dispatchFakeEvent(nextButton, 'touchstart');
fixture.detectChanges();
dispatchFakeEvent(nextButton, 'touchend');
fixture.detectChanges();
// No need to assert. If fakeAsync doesn't throw, it means that the timers were cleared.
}));
it('should trigger output event on primary value bar animation end', () => {
fixture.detectChanges();
spyOn(progressComponent.animationEnd, 'next');
progressComponent.value = 40;
expect(progressComponent.animationEnd.next).not.toHaveBeenCalled();
// On animation end, output should be emitted.
dispatchFakeEvent(primaryValueBar.nativeElement, 'transitionend');
expect(progressComponent.animationEnd.next).toHaveBeenCalledWith({ value: 40 });
});
it('should clear the timeouts when reaching the start', fakeAsync(() => {
header.scrollDistance = Infinity;
fixture.detectChanges();
dispatchFakeEvent(prevButton, 'mousedown');
fixture.detectChanges();
// Simulate a very long timeout.
tick(60000);
// No need to assert. If fakeAsync doesn't throw, it means that the timers were cleared.
}));
it('should re-align the ink bar when the window is resized', fakeAsync(() => {
fixture = TestBed.createComponent(SimpleTabHeaderApp);
fixture.detectChanges();
const inkBar = fixture.componentInstance.tabHeader._inkBar;
spyOn(inkBar, 'alignToElement');
dispatchFakeEvent(window, 'resize');
tick(150);
fixture.detectChanges();
expect(inkBar.alignToElement).toHaveBeenCalled();
discardPeriodicTasks();
}));
it('should set the control to touched when the select is touched', () => {
expect(fixture.componentInstance.control.touched)
.toEqual(false, `Expected the control to start off as untouched.`);
trigger.click();
dispatchFakeEvent(trigger, 'blur');
fixture.detectChanges();
expect(fixture.componentInstance.control.touched)
.toEqual(false, `Expected the control to stay untouched when menu opened.`);
const backdrop =
overlayContainerElement.querySelector('.cdk-overlay-backdrop') as HTMLElement;
backdrop.click();
dispatchFakeEvent(trigger, 'blur');
fixture.detectChanges();
expect(fixture.componentInstance.control.touched)
.toEqual(true, `Expected the control to be touched as soon as focus left the select.`);
});
it('should not reformat invalid dates on blur', () => {
const inputEl = fixture.debugElement.query(By.css('input')).nativeElement;
inputEl.value = 'very-valid-date';
dispatchFakeEvent(inputEl, 'input');
fixture.detectChanges();
dispatchFakeEvent(inputEl, 'blur');
fixture.detectChanges();
expect(inputEl.value).toBe('very-valid-date');
});
it('should show ripples for tab-group labels', () => {
fixture.detectChanges();
const testElement = fixture.nativeElement;
const tabLabel = fixture.debugElement.queryAll(By.css('.mat-tab-label'))[1];
expect(testElement.querySelectorAll('.mat-ripple-element').length)
.toBe(0, 'Expected no ripples to show up initially.');
dispatchFakeEvent(tabLabel.nativeElement, 'mousedown');
dispatchFakeEvent(tabLabel.nativeElement, 'mouseup');
expect(testElement.querySelectorAll('.mat-ripple-element').length)
.toBe(1, 'Expected one ripple to show up on label mousedown.');
});
it('should not reformat invalid dates on blur', () => {
const inputEl = fixture.debugElement.query(By.css('input')).nativeElement;
inputEl.value = 'very-valid-date';
dispatchFakeEvent(inputEl, 'input');
fixture.detectChanges();
dispatchFakeEvent(inputEl, 'blur');
fixture.detectChanges();
expect(inputEl.value).toBe('very-valid-date');
});
it('should update validity when switching between null and invalid', fakeAsync(() => {
const inputEl = fixture.debugElement.query(By.css('input')).nativeElement;
inputEl.value = '';
dispatchFakeEvent(inputEl, 'input');
fixture.detectChanges();
flush();
fixture.detectChanges();
expect(testComponent.model.valid).toBe(true);
inputEl.value = 'abcdefg';
dispatchFakeEvent(inputEl, 'input');
fixture.detectChanges();
flush();
fixture.detectChanges();
expect(testComponent.model.valid).toBe(false);
inputEl.value = '';
dispatchFakeEvent(inputEl, 'input');
fixture.detectChanges();
flush();
fixture.detectChanges();
expect(testComponent.model.valid).toBe(true);
}));
it('should appear as invalid when the parent form group is submitted', () => {
expect(select.classList)
.not.toContain('mat-select-invalid', 'Expected select not to appear invalid.');
expect(select.getAttribute('aria-invalid'))
.toBe('false', 'Expected aria-invalid to be set to false.');
dispatchFakeEvent(fixture.debugElement.query(By.css('form')).nativeElement, 'submit');
fixture.detectChanges();
expect(select.classList)
.toContain('mat-select-invalid', 'Expected select to appear invalid.');
expect(select.getAttribute('aria-invalid'))
.toBe('true', 'Expected aria-invalid to be set to true.');
});
});