77 lines
4.2 KiB
JavaScript
77 lines
4.2 KiB
JavaScript
|
define(["require", "exports", "react", "./useFocusRects", "./setFocusVisibility", "./dom/getWindow", "enzyme"], function (require, exports, React, useFocusRects_1, setFocusVisibility_1, getWindow, enzyme_1) {
|
||
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
describe('setFocusVisibility', function () {
|
||
|
var wrapper;
|
||
|
var classNames = [];
|
||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||
|
var mockWindow = {
|
||
|
addEventListener: function (name, callback) {
|
||
|
mockWindow[name] = callback;
|
||
|
},
|
||
|
removeEventListener: function (name, callback) {
|
||
|
if (mockWindow[name] === callback) {
|
||
|
mockWindow[name] = undefined;
|
||
|
}
|
||
|
},
|
||
|
document: {
|
||
|
body: {
|
||
|
classList: {
|
||
|
contains: function (name) { return classNames.indexOf(name) > -1; },
|
||
|
add: function (name) { return classNames.indexOf(name) < 0 && classNames.push(name); },
|
||
|
remove: function (name) { return classNames.indexOf(name) > -1 && classNames.splice(classNames.indexOf(name), 1); },
|
||
|
toggle: function (name, val) {
|
||
|
var hasClass = classNames.indexOf(name) > -1;
|
||
|
if (hasClass !== val) {
|
||
|
if (hasClass) {
|
||
|
classNames.splice(classNames.indexOf(name), 1);
|
||
|
}
|
||
|
else {
|
||
|
classNames.push(name);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
var mockTarget = {
|
||
|
ownerDocument: {
|
||
|
defaultView: mockWindow,
|
||
|
},
|
||
|
};
|
||
|
beforeEach(function () {
|
||
|
jest.spyOn(getWindow, 'getWindow').mockReturnValue(mockWindow);
|
||
|
classNames = [];
|
||
|
wrapper = (0, enzyme_1.mount)(React.createElement(useFocusRects_1.FocusRects, null));
|
||
|
});
|
||
|
afterEach(function () { return wrapper.unmount(); });
|
||
|
it('hints to show focus', function () {
|
||
|
(0, setFocusVisibility_1.setFocusVisibility)(true);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusHiddenClassName) > -1).toEqual(false);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusVisibleClassName) > -1).toEqual(true);
|
||
|
});
|
||
|
it('hints to hide focus', function () {
|
||
|
(0, setFocusVisibility_1.setFocusVisibility)(true);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusHiddenClassName) > -1).toEqual(false);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusVisibleClassName) > -1).toEqual(true);
|
||
|
(0, setFocusVisibility_1.setFocusVisibility)(false);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusHiddenClassName) > -1).toEqual(true);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusVisibleClassName) > -1).toEqual(false);
|
||
|
});
|
||
|
it('hints to show focus with target specified', function () {
|
||
|
(0, setFocusVisibility_1.setFocusVisibility)(true, mockTarget);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusHiddenClassName) > -1).toEqual(false);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusVisibleClassName) > -1).toEqual(true);
|
||
|
});
|
||
|
it('hints to hide focus with target specified', function () {
|
||
|
(0, setFocusVisibility_1.setFocusVisibility)(true, mockTarget);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusHiddenClassName) > -1).toEqual(false);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusVisibleClassName) > -1).toEqual(true);
|
||
|
(0, setFocusVisibility_1.setFocusVisibility)(false, mockTarget);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusHiddenClassName) > -1).toEqual(true);
|
||
|
expect(classNames.indexOf(setFocusVisibility_1.IsFocusVisibleClassName) > -1).toEqual(false);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
//# sourceMappingURL=setFocusVisibility.test.js.map
|