diff --git a/packages/react-native-web/src/exports/StyleSheet/__tests__/createStyleResolver-test.js b/packages/react-native-web/src/exports/StyleSheet/__tests__/createStyleResolver-test.js index e468f404..e4d3d09d 100644 --- a/packages/react-native-web/src/exports/StyleSheet/__tests__/createStyleResolver-test.js +++ b/packages/react-native-web/src/exports/StyleSheet/__tests__/createStyleResolver-test.js @@ -1,9 +1,11 @@ /* eslint-env jasmine, jest */ +import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment'; import I18nManager from '../../I18nManager'; import ReactNativePropRegistry from '../ReactNativePropRegistry'; import createStyleResolver from '../createStyleResolver'; +const canUseDOM = ExecutionEnvironment.canUseDOM; let styleResolver; describe('StyleSheet/createStyleResolver', () => { @@ -74,5 +76,24 @@ describe('StyleSheet/createStyleResolver', () => { test('resolves inline-style pointerEvents to classname', () => { expect(styleResolver.resolve({ pointerEvents: 'box-none' })).toMatchSnapshot(); }); + + describe('sheet', () => { + beforeEach(() => { + ExecutionEnvironment.canUseDOM = false; + }); + + afterEach(() => { + ExecutionEnvironment.canUseDOM = canUseDOM; + }); + + test('returns the new sheet once re-initialized', () => { + const sheet = styleResolver.sheet; + + // re-initialize the sheet + styleResolver.getStyleSheet(); + + expect(styleResolver.sheet).not.toBe(sheet); + }); + }); }); }); diff --git a/packages/react-native-web/src/exports/StyleSheet/createStyleResolver.js b/packages/react-native-web/src/exports/StyleSheet/createStyleResolver.js index 5ddca90d..060d90ae 100644 --- a/packages/react-native-web/src/exports/StyleSheet/createStyleResolver.js +++ b/packages/react-native-web/src/exports/StyleSheet/createStyleResolver.js @@ -237,7 +237,9 @@ export default function createStyleResolver() { return result; }, resolve, - sheet + get sheet() { + return sheet; + } }; }