1212describe ( 'when Trusted Types are available in global object' , ( ) => {
1313let React ;
1414let ReactDOMClient ;
15- let ReactFeatureFlags ;
1615let act ;
1716let assertConsoleErrorDev ;
1817let container ;
@@ -33,8 +32,6 @@ describe('when Trusted Types are available in global object', () => {
3332isScript : ( ) => false ,
3433isScriptURL : ( ) => false ,
3534} ;
36- ReactFeatureFlags = require ( 'shared/ReactFeatureFlags' ) ;
37- ReactFeatureFlags . enableTrustedTypesIntegration = true ;
3835React = require ( 'react' ) ;
3936ReactDOMClient = require ( 'react-dom/client' ) ;
4037( { act, assertConsoleErrorDev} = require ( 'internal-test-utils' ) ) ;
@@ -118,7 +115,11 @@ describe('when Trusted Types are available in global object', () => {
118115expect ( setAttributeCalls [ 0 ] [ 0 ] ) . toBe ( container . firstChild ) ;
119116expect ( setAttributeCalls [ 0 ] [ 1 ] ) . toBe ( 'data-foo' ) ;
120117// Ensure it didn't get stringified when passed to a DOM sink:
121- expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject1 ) ;
118+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
119+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject1 ) ;
120+ } else {
121+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( '<b>Hi</b>' ) ;
122+ }
122123
123124setAttributeCalls . length = 0 ;
124125await act ( ( ) => {
@@ -129,7 +130,11 @@ describe('when Trusted Types are available in global object', () => {
129130expect ( setAttributeCalls [ 0 ] [ 0 ] ) . toBe ( container . firstChild ) ;
130131expect ( setAttributeCalls [ 0 ] [ 1 ] ) . toBe ( 'data-foo' ) ;
131132// Ensure it didn't get stringified when passed to a DOM sink:
132- expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject2 ) ;
133+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
134+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject2 ) ;
135+ } else {
136+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( '<b>Bye</b>' ) ;
137+ }
133138} finally {
134139Element . prototype . setAttribute = setAttribute ;
135140}
@@ -153,7 +158,11 @@ describe('when Trusted Types are available in global object', () => {
153158expect ( setAttributeCalls [ 0 ] [ 0 ] ) . toBe ( container . firstChild ) ;
154159expect ( setAttributeCalls [ 0 ] [ 1 ] ) . toBe ( 'class' ) ;
155160// Ensure it didn't get stringified when passed to a DOM sink:
156- expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject1 ) ;
161+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
162+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject1 ) ;
163+ } else {
164+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( '<b>Hi</b>' ) ;
165+ }
157166
158167setAttributeCalls . length = 0 ;
159168await act ( ( ) => {
@@ -164,7 +173,11 @@ describe('when Trusted Types are available in global object', () => {
164173expect ( setAttributeCalls [ 0 ] [ 0 ] ) . toBe ( container . firstChild ) ;
165174expect ( setAttributeCalls [ 0 ] [ 1 ] ) . toBe ( 'class' ) ;
166175// Ensure it didn't get stringified when passed to a DOM sink:
167- expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject2 ) ;
176+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
177+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( ttObject2 ) ;
178+ } else {
179+ expect ( setAttributeCalls [ 0 ] [ 2 ] ) . toBe ( '<b>Bye</b>' ) ;
180+ }
168181} finally {
169182Element . prototype . setAttribute = setAttribute ;
170183}
@@ -189,7 +202,11 @@ describe('when Trusted Types are available in global object', () => {
189202expect ( setAttributeNSCalls [ 0 ] [ 1 ] ) . toBe ( 'http://www.w3.org/1999/xlink' ) ;
190203expect ( setAttributeNSCalls [ 0 ] [ 2 ] ) . toBe ( 'xlink:href' ) ;
191204// Ensure it didn't get stringified when passed to a DOM sink:
192- expect ( setAttributeNSCalls [ 0 ] [ 3 ] ) . toBe ( ttObject1 ) ;
205+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
206+ expect ( setAttributeNSCalls [ 0 ] [ 3 ] ) . toBe ( ttObject1 ) ;
207+ } else {
208+ expect ( setAttributeNSCalls [ 0 ] [ 3 ] ) . toBe ( '<b>Hi</b>' ) ;
209+ }
193210
194211setAttributeNSCalls . length = 0 ;
195212await act ( ( ) => {
@@ -201,7 +218,11 @@ describe('when Trusted Types are available in global object', () => {
201218expect ( setAttributeNSCalls [ 0 ] [ 1 ] ) . toBe ( 'http://www.w3.org/1999/xlink' ) ;
202219expect ( setAttributeNSCalls [ 0 ] [ 2 ] ) . toBe ( 'xlink:href' ) ;
203220// Ensure it didn't get stringified when passed to a DOM sink:
204- expect ( setAttributeNSCalls [ 0 ] [ 3 ] ) . toBe ( ttObject2 ) ;
221+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
222+ expect ( setAttributeNSCalls [ 0 ] [ 3 ] ) . toBe ( ttObject2 ) ;
223+ } else {
224+ expect ( setAttributeNSCalls [ 0 ] [ 3 ] ) . toBe ( '<b>Bye</b>' ) ;
225+ }
205226} finally {
206227Element . prototype . setAttributeNS = setAttributeNS ;
207228}
@@ -212,13 +233,15 @@ describe('when Trusted Types are available in global object', () => {
212233await act ( ( ) => {
213234root . render ( < script > alert("I am not executed")</ script > ) ;
214235} ) ;
215- assertConsoleErrorDev ( [
216- 'Encountered a script tag while rendering React component. ' +
217- 'Scripts inside React components are never executed when rendering ' +
218- 'on the client. Consider using template tag instead ' +
219- '(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template).\n' +
220- ' in script (at **)' ,
221- ] ) ;
236+ if ( gate ( 'enableTrustedTypesIntegration' ) ) {
237+ assertConsoleErrorDev ( [
238+ 'Encountered a script tag while rendering React component. ' +
239+ 'Scripts inside React components are never executed when rendering ' +
240+ 'on the client. Consider using template tag instead ' +
241+ '(https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template).\n' +
242+ ' in script (at **)' ,
243+ ] ) ;
244+ }
222245
223246// check that the warning is printed only once
224247await act ( ( ) => {
0 commit comments