diff --git a/packages/react-native-web/src/exports/AppState/__tests__/index-test.js b/packages/react-native-web/src/exports/AppState/__tests__/index-test.js index 5bd76bc7..1dd0218e 100644 --- a/packages/react-native-web/src/exports/AppState/__tests__/index-test.js +++ b/packages/react-native-web/src/exports/AppState/__tests__/index-test.js @@ -10,23 +10,10 @@ describe('apis/AppState', () => { expect(() => AppState.addEventListener('foo', handler)).toThrow(); expect(() => AppState.addEventListener('change', handler).remove()).not.toThrow(); }); - }); - describe('removeEventListener', () => { - beforeEach(() => { - // removeEventListener logs a deprecation warning, ignore - jest.spyOn(console, 'error'); - console.error.mockImplementation(() => {}); - }); - - afterEach(() => { - console.error.mockRestore(); - }); - - test('throws if the provided "eventType" is not supported', () => { - AppState.addEventListener('change', handler); - expect(() => AppState.removeEventListener('foo', handler)).toThrow(); - expect(() => AppState.removeEventListener('change', handler)).not.toThrow(); + test('returns remove subscription', () => { + const subscription = AppState.addEventListener('change', handler); + expect(() => subscription.remove()).not.toThrow(); }); }); }); diff --git a/packages/react-native-web/src/exports/AppState/index.js b/packages/react-native-web/src/exports/AppState/index.js index dcf756c4..36b8a70a 100644 --- a/packages/react-native-web/src/exports/AppState/index.js +++ b/packages/react-native-web/src/exports/AppState/index.js @@ -72,6 +72,11 @@ export default class AppState { static removeEventListener(type: string, handler: Function) { if (AppState.isAvailable) { + console.error( + `AppState.removeListener('${type}', ...): Method has been ` + + 'deprecated. Please instead use `remove()` on the subscription ' + + 'returned by `AppState.addEventListener`.' + ); invariant( EVENT_TYPES.indexOf(type) !== -1, 'Trying to remove listener for unknown event: "%s"',