Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
62 changes: 62 additions & 0 deletions cypress/e2e/useMultipleCombobox.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,73 @@ describe('useMultipleCombobox', () => {
it('can select multiple items', () => {
cy.findByRole('button', {name: 'toggle menu'}).click()
cy.findByRole('option', {name: 'Green'}).click()
cy.findByRole('button', {name: 'toggle menu'}).should(
'have.attr',
'aria-expanded',
'true',
)
cy.findByRole('option', {name: 'Gray'}).click()
cy.findByRole('button', {name: 'toggle menu'}).click()
cy.findByRole('button', {name: 'toggle menu'}).should(
'have.attr',
'aria-expanded',
'false',
)
cy.findByText('Black').should('be.visible')
cy.findByText('Red').should('be.visible')
cy.findByText('Green').should('be.visible')
cy.findByText('Gray').should('be.visible')
})
})

describe('useMultipleCombobox in shadow DOM', () => {
beforeEach(() => {
cy.visit('/shadow-dom/useMultipleCombobox')
})

it('can select multiple items within a shadow DOM', () => {
cy.get('[data-testid="shadow-root"]')
.shadow()
.within(() => {
cy.findByRole('button', {name: 'toggle menu'}).click()
cy.findByRole('option', {name: 'Green'}).click()
cy.findByRole('button', {name: 'toggle menu'}).should(
'have.attr',
'aria-expanded',
'true',
)
cy.findByRole('option', {name: 'Gray'}).click()
cy.findByRole('button', {name: 'toggle menu'}).click()
cy.findByRole('button', {name: 'toggle menu'}).should(
'have.attr',
'aria-expanded',
'false',
)
cy.findByText('Black').should('be.visible')
cy.findByText('Red').should('be.visible')
cy.findByText('Green').should('be.visible')
cy.findByText('Gray').should('be.visible')
})
})

it('can filter the items', () => {
cy.get('[data-testid="shadow-root"]')
.shadow()
.within(() => {
cy.findByRole('button', {name: 'toggle menu'}).click()
cy.findAllByRole('option').should('have.length', 12)
cy.findByRole('combobox').type('g')
cy.findByRole('button', {name: 'toggle menu'}).should(
'have.attr',
'aria-expanded',
'true',
)
cy.findAllByRole('option').should('have.length', 2)
cy.findByText('Green').should('be.visible')
cy.findByText('Gray').should('be.visible')

cy.findByRole('combobox').type('{backspace}')
cy.findAllByRole('option').should('have.length', 12)
})
})
})
21 changes: 21 additions & 0 deletions docusaurus/pages/shadow-dom/useCombobox.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import * as React from 'react'

import DropdownCombobox from '../useCombobox'
import {ReactShadowRoot} from '../../../test/react-shadow'

const style = {
padding: '20px',
}

export default function MultipleComboboxShadow() {
return (
<div style={style}>
<h2>Shadow DOM</h2>
<div data-testid="shadow-root">
<ReactShadowRoot>
<DropdownCombobox />
</ReactShadowRoot>
</div>
</div>
)
}
27 changes: 27 additions & 0 deletions docusaurus/pages/shadow-dom/useMultipleCombobox.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import * as React from 'react'

import DropdownMultipleCombobox from '../useMultipleCombobox'
import {ReactShadowRoot} from '../../../test/react-shadow'

const style = {
padding: '20px',
}

export default function MultipleComboboxShadow() {
return (
<div style={style}>
<div>
<button>Button before shadow root</button>
</div>
<h2>Shadow DOM</h2>
<div data-testid="shadow-root">
<ReactShadowRoot>
<DropdownMultipleCombobox />
</ReactShadowRoot>
</div>
<div>
<button>Button after shadow root</button>
</div>
</div>
)
}
12 changes: 12 additions & 0 deletions docusaurus/pages/shadow-dom/useSelect.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import * as React from 'react'

import DropdownSelect from '../useSelect'
import {ReactShadowRoot} from '../../../test/react-shadow'

export default function DropdownSelectShadow() {
return (
<ReactShadowRoot>
<DropdownSelect />
</ReactShadowRoot>
)
}
5 changes: 3 additions & 2 deletions src/__tests__/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"react/prop-types": "off",
"react/display-name": "off",
"react/no-deprecated": "off",
"no-console": "off"
}
"no-console": "off",
"no-unused-vars": "off",
},
}
Loading