Skip to content
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

test(module:auto-complete): added missing tests #8780

Merged
Merged
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
5c11a42
fix(module:tabs): wrong cursor
ParsaArvanehPA Feb 1, 2024
aac33c4
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Feb 13, 2024
f7525f5
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Feb 19, 2024
8a974b9
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Feb 19, 2024
e5276bb
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Feb 20, 2024
0f989fe
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Feb 27, 2024
ec35a90
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Feb 28, 2024
6ec6fe1
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Mar 2, 2024
5d1e384
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Mar 24, 2024
d81339e
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Mar 24, 2024
2284767
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Apr 6, 2024
0ac094d
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Apr 23, 2024
59d40a5
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA May 12, 2024
82afabb
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Jul 14, 2024
11b7fc8
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Jul 17, 2024
8705669
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Aug 4, 2024
0e963ac
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Aug 12, 2024
2bb0cd9
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Sep 3, 2024
674a373
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Sep 8, 2024
124d3ac
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Sep 16, 2024
413ac69
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Sep 18, 2024
5bee081
Merge branch 'NG-ZORRO:master' into master
ParsaArvanehPA Sep 22, 2024
ed0f139
test(module:auto-complete): added missing tests
ParsaArvanehPA Sep 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 138 additions & 1 deletion components/auto-complete/autocomplete.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {
NgZone,
OnInit,
QueryList,
SimpleChanges,
ViewChild,
ViewChildren
} from '@angular/core';
Expand All @@ -36,14 +37,16 @@ import {
MockNgZone,
typeInElement
} from 'ng-zorro-antd/core/testing';
import { NzSafeAny } from 'ng-zorro-antd/core/types';
import { NzInputModule } from 'ng-zorro-antd/input';

import { getNzAutocompleteMissingPanelError } from './autocomplete-trigger.directive';
import {
NzAutocompleteComponent,
NzAutocompleteModule,
NzAutocompleteOptionComponent,
NzAutocompleteTriggerDirective
NzAutocompleteTriggerDirective,
NzOptionSelectionChange
} from './index';

describe('auto-complete', () => {
Expand Down Expand Up @@ -874,6 +877,25 @@ describe('auto-complete', () => {
tick(500);
expect(overlayContainerElement.querySelector('.ant-select-dropdown')).toBeFalsy();
}));

it('should call closePanel on correct circumstances', () => {
const trigger = fixture.componentInstance.trigger;

trigger.panelOpen = true;
trigger.nzAutocomplete.showPanel = true;
const event = new KeyboardEvent('keydown', {
key: 'Enter',
code: 'Enter',
which: 13,
keyCode: 13
});
spyOnProperty(trigger, 'activeOption', 'get').and.returnValue(null);
spyOn(trigger, 'closePanel');

trigger.handleKeydown(event);

expect(trigger.closePanel).toHaveBeenCalled();
});
});

// TODO: Implement this test case
Expand Down Expand Up @@ -1196,3 +1218,118 @@ class NzTestAutocompleteWithGroupInputComponent {
@ViewChild(NzAutocompleteTriggerDirective, { static: false }) trigger!: NzAutocompleteTriggerDirective;
@ViewChild('inputGroupComponent', { static: false, read: ElementRef }) inputGroupComponent!: ElementRef;
}

class MockDirectionality {
value = 'ltr';
change = new Subject();
}

describe('auto-complete', () => {
let component: NzAutocompleteComponent;
let fixture: ComponentFixture<NzAutocompleteComponent>;
let mockDirectionality: MockDirectionality;

beforeEach(() => {
TestBed.configureTestingModule({
imports: [NzAutocompleteModule],
providers: [{ provide: Directionality, useClass: MockDirectionality }]
}).compileComponents();

fixture = TestBed.createComponent(NzAutocompleteComponent);
component = fixture.componentInstance;
mockDirectionality = TestBed.inject(Directionality) as unknown as MockDirectionality;
});

it('should change dir', fakeAsync(() => {
spyOn(component['changeDetectorRef'], 'detectChanges');
mockDirectionality.value = 'ltr';
component.ngOnInit();
expect(component.dir).toEqual('ltr');
mockDirectionality.change.next('rtl');
tick();
expect(component.dir).toEqual('rtl');
expect(component['changeDetectorRef'].detectChanges).toHaveBeenCalled();
}));

it('should normalizeDataSource return correct value', () => {
let changes: SimpleChanges = {
nzDataSource: {
currentValue: [1, 2],
firstChange: false,
previousValue: undefined,
isFirstChange: function (): boolean {
throw new Error('Function not implemented.');
}
}
};
component.ngOnChanges(changes);
expect(component.normalizedDataSource).toEqual([
{
label: '1',
value: '1'
},
{
label: '2',
value: '2'
}
]);

changes = {
nzDataSource: {
currentValue: ['1', '2'],
firstChange: false,
previousValue: undefined,
isFirstChange: function (): boolean {
throw new Error('Function not implemented.');
}
}
};
component.ngOnChanges(changes);
expect(component.normalizedDataSource).toEqual([
{
label: '1',
value: '1'
},
{
label: '2',
value: '2'
}
]);

changes = {
nzDataSource: {
currentValue: [
{
label: '1',
value: '1'
},
{
label: '2',
value: '2'
}
],
firstChange: false,
previousValue: undefined,
isFirstChange: function (): boolean {
throw new Error('Function not implemented.');
}
}
};
component.ngOnChanges(changes);
expect(component.normalizedDataSource).toEqual([
{
label: '1',
value: '1'
},
{
label: '2',
value: '2'
}
]);
});

it('NzOptionSelectionChange should have correct initial value for isUserInput', () => {
const nzOptionSelectionChange = new NzOptionSelectionChange({} as NzSafeAny);
expect(nzOptionSelectionChange.isUserInput).toBeFalsy();
});
});