Skip to content

Commit

Permalink
fix(module:collapse): can't fold up active panel with accordion (#2440)
Browse files Browse the repository at this point in the history
close #2437
  • Loading branch information
wheeljs authored and vthinkxie committed Nov 13, 2018
1 parent 72b0f52 commit a17ea49
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
5 changes: 4 additions & 1 deletion components/collapse/nz-collapse.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ export class NzCollapseComponent {
if (this.nzAccordion) {
this.listOfPanel.forEach(item => {
const active = collapse === item;
if (item.nzActive !== active) {
if (active && item.nzActive === active) {
item.nzActive = false;
item.nzActiveChange.emit(item.nzActive);
} else if (item.nzActive !== active) {
item.nzActive = active;
item.nzActiveChange.emit(item.nzActive);
}
Expand Down
26 changes: 26 additions & 0 deletions components/collapse/nz-collapse.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,32 @@ describe('collapse', () => {
expect(testComponent.active01Change).toHaveBeenCalledTimes(2);
expect(testComponent.active02Change).toHaveBeenCalledTimes(1);
});
it('should click to fold up work with accordion', () => {
testComponent.accordion = true;
fixture.detectChanges();
expect(panels[ 0 ].nativeElement.classList).not.toContain('ant-collapse-item-active');
expect(testComponent.active01).toBe(false);
panels[ 0 ].nativeElement.querySelector('.ant-collapse-header').click();
fixture.detectChanges();
panels[ 1 ].nativeElement.querySelector('.ant-collapse-header').click();
fixture.detectChanges();
panels[ 0 ].nativeElement.querySelector('.ant-collapse-header').click();
fixture.detectChanges();
expect(testComponent.active01).toBe(true);
expect(testComponent.active02).toBe(false);
expect(panels[ 0 ].nativeElement.classList).toContain('ant-collapse-item-active');
expect(panels[ 1 ].nativeElement.classList).not.toContain('ant-collapse-item-active');
expect(testComponent.active01Change).toHaveBeenCalledTimes(3);
expect(testComponent.active02Change).toHaveBeenCalledTimes(2);
panels[ 0 ].nativeElement.querySelector('.ant-collapse-header').click();
fixture.detectChanges();
expect(testComponent.active01).toBe(false);
expect(testComponent.active02).toBe(false);
expect(panels[ 0 ].nativeElement.classList).not.toContain('ant-collapse-item-active');
expect(panels[ 1 ].nativeElement.classList).not.toContain('ant-collapse-item-active');
expect(testComponent.active01Change).toHaveBeenCalledTimes(4);
expect(testComponent.active02Change).toHaveBeenCalledTimes(2);
});
it('should header work', () => {
fixture.detectChanges();
expect(panels[ 0 ].nativeElement.querySelector('.ant-collapse-header').innerText).toBe('string');
Expand Down

0 comments on commit a17ea49

Please sign in to comment.