Skip to content

Commit b6f5f65

Browse files
committed
test(ui-focusable): migrate old Focusable tests
1 parent ea6dcea commit b6f5f65

File tree

6 files changed

+553
-476
lines changed

6 files changed

+553
-476
lines changed

cypress/component/Focusable.cy.tsx

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* The MIT License (MIT)
3+
*
4+
* Copyright (c) 2015 - present Instructure, Inc.
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all
14+
* copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
import React from 'react'
25+
import { Focusable } from '@instructure/ui'
26+
27+
import '../support/component'
28+
import 'cypress-real-events'
29+
30+
describe('<Focusable/>', () => {
31+
it('should populate the focusVisible argument', async () => {
32+
const renderSpy = cy.spy()
33+
34+
cy.mount(
35+
<Focusable>
36+
{(args) => {
37+
renderSpy(args)
38+
return <button>foo</button>
39+
}}
40+
</Focusable>
41+
)
42+
43+
cy.get('button')
44+
.click()
45+
.focus()
46+
.then(() => {
47+
cy.wrap(renderSpy).should('have.been.called')
48+
cy.wrap(renderSpy.lastCall.args[0]).should(
49+
'have.property',
50+
'focused',
51+
true
52+
)
53+
cy.wrap(renderSpy.lastCall.args[0]).should(
54+
'have.property',
55+
'focusVisible',
56+
false
57+
)
58+
})
59+
})
60+
})

package-lock.json

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/ui-focusable/package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@
2424
"license": "MIT",
2525
"devDependencies": {
2626
"@instructure/ui-babel-preset": "10.14.0",
27-
"@instructure/ui-test-utils": "10.14.0"
27+
"@testing-library/jest-dom": "^6.6.3",
28+
"@testing-library/react": "^16.0.1",
29+
"@testing-library/user-event": "^14.5.2",
30+
"vitest": "^2.1.8"
2831
},
2932
"dependencies": {
3033
"@babel/runtime": "^7.26.0",

0 commit comments

Comments
 (0)