diff --git a/packages/react-relay/relay-hooks/__tests__/FragmentResourceRequiredField-test.js b/packages/react-relay/relay-hooks/__tests__/FragmentResourceRequiredField-test.js index 962f385a74820..8f07319384c4e 100644 --- a/packages/react-relay/relay-hooks/__tests__/FragmentResourceRequiredField-test.js +++ b/packages/react-relay/relay-hooks/__tests__/FragmentResourceRequiredField-test.js @@ -13,7 +13,6 @@ const {getFragmentResourceForEnvironment} = require('../FragmentResource'); const { - RelayFeatureFlags, __internal: {fetchQuery}, createOperationDescriptor, getFragment, @@ -22,14 +21,6 @@ const { } = require('relay-runtime'); const {createMockEnvironment} = require('relay-test-utils'); -beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; -}); - -afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; -}); - let environment; let query; let FragmentResource; diff --git a/packages/react-relay/relay-hooks/__tests__/useFragmentNode-required-test.js b/packages/react-relay/relay-hooks/__tests__/useFragmentNode-required-test.js index bced27690dde1..cda2f52e77906 100644 --- a/packages/react-relay/relay-hooks/__tests__/useFragmentNode-required-test.js +++ b/packages/react-relay/relay-hooks/__tests__/useFragmentNode-required-test.js @@ -22,7 +22,6 @@ const { FRAGMENT_OWNER_KEY, FRAGMENTS_KEY, ID_KEY, - RelayFeatureFlags, createOperationDescriptor, getFragment, getRequest, @@ -63,8 +62,6 @@ beforeEach(() => { jest.mock('warning'); renderSpy = jest.fn(); - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; - // Set up environment and base data environment = createMockEnvironment(); @@ -129,7 +126,6 @@ beforeEach(() => { }); afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; environment.mockClear(); renderSpy.mockClear(); // $FlowFixMe[prop-missing] diff --git a/packages/relay-runtime/mutations/__tests__/commitMutation-test.js b/packages/relay-runtime/mutations/__tests__/commitMutation-test.js index 29123cf18ba6d..4a1f57dc42ddc 100644 --- a/packages/relay-runtime/mutations/__tests__/commitMutation-test.js +++ b/packages/relay-runtime/mutations/__tests__/commitMutation-test.js @@ -28,7 +28,6 @@ const {createReaderSelector} = require('../../store/RelayModernSelector'); const RelayModernStore = require('../../store/RelayModernStore'); const RelayRecordSource = require('../../store/RelayRecordSource'); const {ROOT_ID} = require('../../store/RelayStoreUtils'); -const RelayFeatureFlags = require('../../util/RelayFeatureFlags'); const commitMutation = require('../commitMutation'); const nullthrows = require('nullthrows'); const {createMockEnvironment} = require('relay-test-utils-internal'); @@ -1099,7 +1098,6 @@ describe('Required mutation roots', () => { let dataSource; let environment; beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; const fetch = jest.fn((_query, _variables, _cacheConfig) => { return RelayObservable.create(sink => { dataSource = sink; diff --git a/packages/relay-runtime/query/__tests__/fetchQuery-test.js b/packages/relay-runtime/query/__tests__/fetchQuery-test.js index 28be3c533e0c9..8953f37f46fd5 100644 --- a/packages/relay-runtime/query/__tests__/fetchQuery-test.js +++ b/packages/relay-runtime/query/__tests__/fetchQuery-test.js @@ -15,7 +15,6 @@ const fetchQuery = require('../fetchQuery'); const { - RelayFeatureFlags, createOperationDescriptor, getRequest, graphql, @@ -227,13 +226,6 @@ describe('fetchQuery', () => { }); describe('fetchQuery with missing @required value', () => { - beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; - }); - afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; - }); - it('provides data snapshot on next', () => { const requiredFieldLogger = jest.fn(); const environment = createMockEnvironment({ diff --git a/packages/relay-runtime/store/RelayReader.js b/packages/relay-runtime/store/RelayReader.js index 25a724853a529..2f31299be3d0c 100644 --- a/packages/relay-runtime/store/RelayReader.js +++ b/packages/relay-runtime/store/RelayReader.js @@ -293,13 +293,6 @@ class RelayReader { const selection = selections[i]; switch (selection.kind) { case REQUIRED_FIELD: - invariant( - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES, - 'RelayReader(): Encountered a `@required` directive at path "%s" in `%s` without the `ENABLE_REQUIRED_DIRECTIVES` feature flag enabled.', - selection.path, - this._selector.node.name, - ); - const fieldValue = this._readRequiredField(selection, record, data); if (fieldValue == null) { const {action} = selection; diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ConnectionAndRequired-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ConnectionAndRequired-test.js index 997316337c413..8dd2f60e1bf22 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ConnectionAndRequired-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ConnectionAndRequired-test.js @@ -28,7 +28,6 @@ const {getSingularSelector} = require('../RelayModernSelector'); const RelayModernStore = require('../RelayModernStore'); const RelayRecordSource = require('../RelayRecordSource'); const nullthrows = require('nullthrows'); -const {RelayFeatureFlags} = require('relay-runtime'); const {disallowWarnings} = require('relay-test-utils-internal'); disallowWarnings(); @@ -45,8 +44,6 @@ describe.each(['RelayModernEnvironment', 'MultiActorEnvironment'])( describe(environmentType, () => { beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; - query = getRequest(graphql` query RelayModernEnvironmentConnectionAndRequiredTestFeedbackQuery( $id: ID! diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js index 1ffa4c35461ae..0c3243c32763e 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js @@ -28,7 +28,6 @@ const { const {createReaderSelector} = require('../RelayModernSelector'); const RelayModernStore = require('../RelayModernStore'); const RelayRecordSource = require('../RelayRecordSource'); -const {RelayFeatureFlags} = require('relay-runtime'); const {disallowWarnings} = require('relay-test-utils-internal'); disallowWarnings(); @@ -44,8 +43,6 @@ describe('execute() a query with @stream and @required', () => { let selector; beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; - query = getRequest(graphql` query RelayModernEnvironmentExecuteWithStreamAndRequiredTestFeedbackQuery( $id: ID! @@ -94,10 +91,6 @@ describe('execute() a query with @stream and @required', () => { }); }); - afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; - }); - it('bubbles @required @stream nodes up to the parent', () => { const initialSnapshot = environment.lookup(selector); const callback = jest.fn(); diff --git a/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredField-test.js b/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredField-test.js index d7da0c7960118..c9b68aeea75f7 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredField-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredField-test.js @@ -14,22 +14,9 @@ const RelayModernFragmentSpecResolver = require('../RelayModernFragmentSpecResol const { createOperationDescriptor, } = require('../RelayModernOperationDescriptor'); -const { - RelayFeatureFlags, - getFragment, - getRequest, - graphql, -} = require('relay-runtime'); +const {getFragment, getRequest, graphql} = require('relay-runtime'); const {createMockEnvironment} = require('relay-test-utils-internal'); -beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; -}); - -afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; -}); - describe('RelayModernFragmentSpecResolver', () => { let UserFragment; let UserQuery; diff --git a/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredFieldNoLogger-test.js b/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredFieldNoLogger-test.js index a064ce118b57f..3d2f3538fd4e4 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredFieldNoLogger-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernFragmentSpecResolverRequiredFieldNoLogger-test.js @@ -14,23 +14,13 @@ const RelayModernFragmentSpecResolver = require('../RelayModernFragmentSpecResol const { createOperationDescriptor, } = require('../RelayModernOperationDescriptor'); -const { - RelayFeatureFlags, - getFragment, - getRequest, - graphql, -} = require('relay-runtime'); +const {getFragment, getRequest, graphql} = require('relay-runtime'); const {createMockEnvironment} = require('relay-test-utils'); const dev = __DEV__; beforeEach(() => { global.__DEV__ = dev; - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; -}); - -afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; }); describe('RelayModernFragmentSpecResolver', () => { diff --git a/packages/relay-runtime/store/__tests__/RelayReader-RequiredFields-test.js b/packages/relay-runtime/store/__tests__/RelayReader-RequiredFields-test.js index b2608ba4e0b49..c1a011eeeccd6 100644 --- a/packages/relay-runtime/store/__tests__/RelayReader-RequiredFields-test.js +++ b/packages/relay-runtime/store/__tests__/RelayReader-RequiredFields-test.js @@ -18,49 +18,7 @@ const {read} = require('../RelayReader'); const RelayRecordSource = require('../RelayRecordSource'); const {RelayFeatureFlags, createReaderSelector} = require('relay-runtime'); -beforeEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = true; -}); - -afterEach(() => { - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; -}); - describe('RelayReader @required', () => { - it('throws if a @required is encounted without the ENABLE_REQUIRED_DIRECTIVES feature flag enabled', () => { - const source = RelayRecordSource.create({ - 'client:root': { - __id: 'client:root', - __typename: '__Root', - me: {__ref: '1'}, - }, - '1': { - __id: '1', - id: '1', - __typename: 'User', - firstName: 'Alice', - lastName: null, - }, - }); - const FooQuery = graphql` - query RelayReaderRequiredFieldsTest1Query { - me { - firstName - lastName @required(action: LOG) - } - } - `; - const operation = createOperationDescriptor(FooQuery, {id: '1'}); - - RelayFeatureFlags.ENABLE_REQUIRED_DIRECTIVES = false; - - expect(() => { - read(source, operation.fragment); - }).toThrowErrorMatchingInlineSnapshot( - '"RelayReader(): Encountered a `@required` directive at path \\"me.lastName\\" in `RelayReaderRequiredFieldsTest1Query` without the `ENABLE_REQUIRED_DIRECTIVES` feature flag enabled."', - ); - }); - it('bubbles @required(action: LOG) scalars up to LinkedField', () => { const source = RelayRecordSource.create({ 'client:root': { diff --git a/packages/relay-runtime/util/RelayFeatureFlags.js b/packages/relay-runtime/util/RelayFeatureFlags.js index aa308fd816a5c..bbdb289687706 100644 --- a/packages/relay-runtime/util/RelayFeatureFlags.js +++ b/packages/relay-runtime/util/RelayFeatureFlags.js @@ -20,7 +20,6 @@ export type FeatureFlags = {| ENABLE_VARIABLE_CONNECTION_KEY: boolean, ENABLE_PARTIAL_RENDERING_DEFAULT: boolean, ENABLE_REACT_FLIGHT_COMPONENT_FIELD: boolean, - ENABLE_REQUIRED_DIRECTIVES: boolean | string, ENABLE_RELAY_RESOLVERS: boolean, ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION: boolean, ENABLE_FRIENDLY_QUERY_NAME_GQL_URL: boolean, @@ -42,7 +41,6 @@ const RelayFeatureFlags: FeatureFlags = { ENABLE_VARIABLE_CONNECTION_KEY: false, ENABLE_PARTIAL_RENDERING_DEFAULT: true, ENABLE_REACT_FLIGHT_COMPONENT_FIELD: false, - ENABLE_REQUIRED_DIRECTIVES: false, ENABLE_RELAY_RESOLVERS: false, ENABLE_GETFRAGMENTIDENTIFIER_OPTIMIZATION: false, ENABLE_FRIENDLY_QUERY_NAME_GQL_URL: false,