Skip to content

Commit 765b407

Browse files
committed
test: use document.activeElement instead of pseudo :focus query search
Some tests seem to use `:focus` instead of `document.activeElement` for test assertions. This seems to work unreliably in Safari as sometimes the `:focus` query returns `null`, unless `document.activeElement` is requested before (which seems to indicate that `document.activeElement` does something under-the-hood to determine the active element, while `querySelector(':focus')` does not have this. The details on why `activeElement` is better in our case are a little hypothetical but doesn't seem worth investigating a lot since in all other places in the repo we haven't used this pattern for checking the active document element.
1 parent 1bf37ce commit 765b407

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

src/cdk-experimental/menu/context-menu.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ describe('CdkContextMenuTrigger', () => {
126126

127127
it('should focus the first menuitem when the context menu is opened', () => {
128128
openContextMenu();
129-
expect(document.querySelector(':focus')!.id).toEqual('first_menu_item');
129+
expect(document.activeElement!.id).toEqual('first_menu_item');
130130
});
131131
});
132132

src/cdk-experimental/menu/menu-bar.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -986,8 +986,8 @@ describe('MenuBar', () => {
986986
dispatchMouseEvent(menuBarNativeItems[0], 'mouseenter');
987987
detectChanges();
988988

989-
expect(document.querySelector(':focus')).not.toEqual(menuBarNativeItems[0]);
990-
expect(document.querySelector(':focus')).not.toEqual(menuBarNativeItems[1]);
989+
expect(document.activeElement).not.toEqual(menuBarNativeItems[0]);
990+
expect(document.activeElement).not.toEqual(menuBarNativeItems[1]);
991991
},
992992
);
993993

@@ -1089,7 +1089,7 @@ describe('MenuBar', () => {
10891089

10901090
dispatchKeyboardEvent(nativeMenus[0], 'keydown', DOWN_ARROW);
10911091

1092-
expect(document.querySelector(':focus')).toEqual(fileMenuNativeItems[1]);
1092+
expect(document.activeElement).toEqual(fileMenuNativeItems[1]);
10931093
},
10941094
);
10951095

src/cdk-experimental/menu/menu.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ describe('Menu', () => {
214214
dispatchKeyboardEvent(document, 'keydown', TAB);
215215
nativeMenu.focus();
216216

217-
expect(document.querySelector(':focus')).toEqual(nativeMenuItems[0]);
217+
expect(document.activeElement).toEqual(nativeMenuItems[0]);
218218
});
219219
});
220220

src/material-experimental/menubar/menubar.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ describe('MatMenuBar', () => {
5353
it('should toggle focused items on left/right click', () => {
5454
nativeMatMenubar.focus();
5555

56-
expect(document.querySelector(':focus')!.id).toBe('first');
56+
expect(document.activeElement!.id).toBe('first');
5757

5858
dispatchKeyboardEvent(nativeMatMenubar, 'keydown', RIGHT_ARROW);
5959
fixture.detectChanges();
6060

61-
expect(document.querySelector(':focus')!.id).toBe('second');
61+
expect(document.activeElement!.id).toBe('second');
6262
});
6363
});
6464

0 commit comments

Comments
 (0)