Files
react-native/Libraries/Components/Pressable/__tests__/Pressable-test.js
T
Kacie Bawiec 1c7d9c8046 Fix disabled prop not disabling onPress for voice assistant
Summary:
It is currently possible to activate a disabled Pressable with VoiceOver/TalkBack. This fixes this.

Changelog:
[General][Fixed] Fix disabled prop not disabling onPress for voice assistant

Reviewed By: blavalla

Differential Revision: D26225448

fbshipit-source-id: 67fa10f9e5c50143d986dc709a2fb639fdc3e718
2021-02-08 15:18:50 -08:00

97 lines
2.3 KiB
JavaScript

/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
* @emails oncall+react_native
* @flow strict-local
*/
import * as React from 'react';
import Pressable from '../Pressable';
import View from '../../View/View';
import {expectRendersMatchingSnapshot} from '../../../Utilities/ReactNativeTestTools';
describe('<Pressable />', () => {
it('should render as expected', () => {
expectRendersMatchingSnapshot(
'Pressable',
() => (
<Pressable>
<View />
</Pressable>
),
() => {
jest.dontMock('../Pressable');
},
);
});
});
describe('<Pressable disabled={true} />', () => {
it('should be disabled when disabled is true', () => {
expectRendersMatchingSnapshot(
'Pressable',
() => (
<Pressable disabled={true}>
<View />
</Pressable>
),
() => {
jest.dontMock('../Pressable');
},
);
});
});
describe('<Pressable disabled={true} accessibilityState={{}} />', () => {
it('should be disabled when disabled is true and accessibilityState is empty', () => {
expectRendersMatchingSnapshot(
'Pressable',
() => (
<Pressable disabled={true} accessibilityState={{}}>
<View />
</Pressable>
),
() => {
jest.dontMock('../Pressable');
},
);
});
});
describe('<Pressable disabled={true} accessibilityState={{checked: true}} />', () => {
it('should keep accessibilityState when disabled is true', () => {
expectRendersMatchingSnapshot(
'Pressable',
() => (
<Pressable disabled={true} accessibilityState={{checked: true}}>
<View />
</Pressable>
),
() => {
jest.dontMock('../Pressable');
},
);
});
});
describe('<Pressable disabled={true} accessibilityState={{disabled: false}} />', () => {
it('should overwrite accessibilityState with value of disabled prop', () => {
expectRendersMatchingSnapshot(
'Pressable',
() => (
<Pressable disabled={true} accessibilityState={{disabled: false}}>
<View />
</Pressable>
),
() => {
jest.dontMock('../Pressable');
},
);
});
});