Skip to content

Commit 97cc67f

Browse files
committed
fix(select-spec): Update the rtl test to ensure the fixture is stable
1 parent 1a67107 commit 97cc67f

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

src/lib/select/select.spec.ts

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -976,37 +976,41 @@ describe('MdSelect', () => {
976976
select.style.marginRight = '20px';
977977
});
978978

979-
it('should align the trigger and the selected option on the x-axis in ltr', () => {
979+
it('should align the trigger and the selected option on the x-axis in ltr', async(() => {
980980
trigger.click();
981981
fixture.detectChanges();
982982

983-
const triggerLeft = trigger.getBoundingClientRect().left;
984-
const firstOptionLeft =
985-
document.querySelector('.cdk-overlay-pane md-option').getBoundingClientRect().left;
986-
987-
// Each option is 32px wider than the trigger, so it must be adjusted 16px
988-
// to ensure the text overlaps correctly.
989-
expect(firstOptionLeft.toFixed(2))
990-
.toEqual((triggerLeft - 16).toFixed(2),
991-
`Expected trigger to align with the selected option on the x-axis in LTR.`);
992-
});
983+
fixture.whenStable().then(() => {
984+
const triggerLeft = trigger.getBoundingClientRect().left;
985+
const firstOptionLeft =
986+
document.querySelector('.cdk-overlay-pane md-option').getBoundingClientRect().left;
987+
988+
// Each option is 32px wider than the trigger, so it must be adjusted 16px
989+
// to ensure the text overlaps correctly.
990+
expect(firstOptionLeft.toFixed(2))
991+
.toEqual((triggerLeft - 16).toFixed(2),
992+
`Expected trigger to align with the selected option on the x-axis in LTR.`);
993+
});
994+
}));
993995

994-
it('should align the trigger and the selected option on the x-axis in rtl', () => {
996+
it('should align the trigger and the selected option on the x-axis in rtl', async(() => {
995997
dir.value = 'rtl';
996998

997999
trigger.click();
9981000
fixture.detectChanges();
9991001

1000-
const triggerRight = trigger.getBoundingClientRect().right;
1001-
const firstOptionRight =
1002-
document.querySelector('.cdk-overlay-pane md-option').getBoundingClientRect().right;
1003-
1004-
// Each option is 32px wider than the trigger, so it must be adjusted 16px
1005-
// to ensure the text overlaps correctly.
1006-
expect(firstOptionRight.toFixed(2))
1007-
.toEqual((triggerRight + 16).toFixed(2),
1008-
`Expected trigger to align with the selected option on the x-axis in RTL.`);
1009-
});
1002+
fixture.whenStable().then(() => {
1003+
const triggerRight = trigger.getBoundingClientRect().right;
1004+
const firstOptionRight =
1005+
document.querySelector('.cdk-overlay-pane md-option').getBoundingClientRect().right;
1006+
1007+
// Each option is 32px wider than the trigger, so it must be adjusted 16px
1008+
// to ensure the text overlaps correctly.
1009+
expect(firstOptionRight.toFixed(2))
1010+
.toEqual((triggerRight + 16).toFixed(2),
1011+
`Expected trigger to align with the selected option on the x-axis in RTL.`);
1012+
});
1013+
}));
10101014
});
10111015

10121016
});

0 commit comments

Comments
 (0)