Skip to content

Instantly share code, notes, and snippets.

@camchenry
Created June 7, 2022 21:02
Show Gist options
  • Save camchenry/cb919375f5cb25b5fbaa52660d5b1d91 to your computer and use it in GitHub Desktop.
Save camchenry/cb919375f5cb25b5fbaa52660d5b1d91 to your computer and use it in GitHub Desktop.
test('tab benchmark', async () => {
const {
elements: [elA, elB, elC],
user,
} = setup(`<input id="a"/><input id="b"/><input id="c"/>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
<button>1</button><button>2</button><button>3</button><button>4</button><button>5</button><button>1</button><button>2</button><button>3</button><button>4</button><button>5</button>
`, {
focus: '//input[@id="b"]',
})
await user.tab()
expect(elC).toHaveFocus()
await user.keyboard('[ShiftLeft>]')
await user.tab()
expect(elB).toHaveFocus()
await user.tab()
expect(elA).toHaveFocus()
await user.tab({shift: false})
expect(elB).toHaveFocus()
await user.tab({shift: true})
expect(elA).toHaveFocus()
// shift=true lifted the shift key
await user.tab()
expect(elB).toHaveFocus()
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment