@@ -21,7 +21,7 @@ public void RenderHtmlShouldThrowExceptionIfComponentDoesNotExist()
21
21
{
22
22
var environment = new Mock < IReactEnvironment > ( ) ;
23
23
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( false ) ;
24
- var config = new Mock < IReactSiteConfiguration > ( ) ;
24
+ var config = CreateDefaultConfigMock ( ) ;
25
25
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
26
26
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
27
27
@@ -38,7 +38,7 @@ public void RenderHtmlShouldCallRenderComponent()
38
38
{
39
39
var environment = new Mock < IReactEnvironment > ( ) ;
40
40
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
41
- var config = new Mock < IReactSiteConfiguration > ( ) ;
41
+ var config = CreateDefaultConfigMock ( ) ;
42
42
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
43
43
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
44
44
@@ -58,7 +58,7 @@ public void RenderHtmlShouldWrapComponentInDiv()
58
58
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
59
59
environment . Setup ( x => x . Execute < string > ( @"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))" ) )
60
60
. Returns ( "[HTML]" ) ;
61
- var config = new Mock < IReactSiteConfiguration > ( ) ;
61
+ var config = CreateDefaultConfigMock ( ) ;
62
62
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
63
63
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
64
64
@@ -78,7 +78,7 @@ public void RenderHtmlShouldNotRenderComponentHtml()
78
78
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
79
79
environment . Setup ( x => x . Execute < string > ( @"React.renderToString(React.createElement(Foo, {""hello"":""World""}))" ) )
80
80
. Returns ( "[HTML]" ) ;
81
- var config = new Mock < IReactSiteConfiguration > ( ) ;
81
+ var config = CreateDefaultConfigMock ( ) ;
82
82
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
83
83
84
84
var component = new ReactComponent ( environment . Object , config . Object , reactIdGenerator . Object , "Foo" , "container" )
@@ -96,7 +96,7 @@ public void RenderHtmlShouldNotRenderClientSideAttributes()
96
96
{
97
97
var environment = new Mock < IReactEnvironment > ( ) ;
98
98
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
99
- var config = new Mock < IReactSiteConfiguration > ( ) ;
99
+ var config = CreateDefaultConfigMock ( ) ;
100
100
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
101
101
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
102
102
@@ -112,7 +112,7 @@ public void RenderHtmlShouldNotRenderClientSideAttributes()
112
112
[ Fact ]
113
113
public void RenderHtmlShouldWrapComponentInCustomElement ( )
114
114
{
115
- var config = new Mock < IReactSiteConfiguration > ( ) ;
115
+ var config = CreateDefaultConfigMock ( ) ;
116
116
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
117
117
var environment = new Mock < IReactEnvironment > ( ) ;
118
118
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
@@ -133,7 +133,7 @@ public void RenderHtmlShouldWrapComponentInCustomElement()
133
133
[ Fact ]
134
134
public void RenderHtmlShouldNotRenderComponentWhenContainerOnly ( )
135
135
{
136
- var config = new Mock < IReactSiteConfiguration > ( ) ;
136
+ var config = CreateDefaultConfigMock ( ) ;
137
137
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
138
138
var environment = new Mock < IReactEnvironment > ( ) ;
139
139
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
@@ -154,7 +154,7 @@ public void RenderHtmlShouldNotRenderComponentWhenContainerOnly()
154
154
[ Fact ]
155
155
public void RenderHtmlShouldNotWrapComponentWhenServerSideOnly ( )
156
156
{
157
- var config = new Mock < IReactSiteConfiguration > ( ) ;
157
+ var config = CreateDefaultConfigMock ( ) ;
158
158
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
159
159
var environment = new Mock < IReactEnvironment > ( ) ;
160
160
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
@@ -174,7 +174,7 @@ public void RenderHtmlShouldNotWrapComponentWhenServerSideOnly()
174
174
[ Fact ]
175
175
public void RenderHtmlShouldAddClassToElement ( )
176
176
{
177
- var config = new Mock < IReactSiteConfiguration > ( ) ;
177
+ var config = CreateDefaultConfigMock ( ) ;
178
178
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
179
179
var environment = new Mock < IReactEnvironment > ( ) ;
180
180
environment . Setup ( x => x . Execute < bool > ( "typeof Foo !== 'undefined'" ) ) . Returns ( true ) ;
@@ -197,7 +197,7 @@ public void RenderHtmlShouldAddClassToElement()
197
197
public void RenderJavaScriptShouldCallRenderComponent ( )
198
198
{
199
199
var environment = new Mock < IReactEnvironment > ( ) ;
200
- var config = new Mock < IReactSiteConfiguration > ( ) ;
200
+ var config = CreateDefaultConfigMock ( ) ;
201
201
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
202
202
203
203
var component = new ReactComponent ( environment . Object , config . Object , reactIdGenerator . Object , "Foo" , "container" )
@@ -216,7 +216,7 @@ public void RenderJavaScriptShouldCallRenderComponent()
216
216
public void RenderJavaScriptShouldCallRenderComponentWithReactDOMRender ( )
217
217
{
218
218
var environment = new Mock < IReactEnvironment > ( ) ;
219
- var config = new Mock < IReactSiteConfiguration > ( ) ;
219
+ var config = CreateDefaultConfigMock ( ) ;
220
220
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
221
221
222
222
var component = new ReactComponent ( environment . Object , config . Object , reactIdGenerator . Object , "Foo" , "container" )
@@ -236,7 +236,7 @@ public void RenderJavaScriptShouldCallRenderComponentWithReactDOMRender()
236
236
public void RenderJavaScriptShouldCallRenderComponentwithReactDOMHydrate ( )
237
237
{
238
238
var environment = new Mock < IReactEnvironment > ( ) ;
239
- var config = new Mock < IReactSiteConfiguration > ( ) ;
239
+ var config = CreateDefaultConfigMock ( ) ;
240
240
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
241
241
242
242
var component = new ReactComponent ( environment . Object , config . Object , reactIdGenerator . Object , "Foo" , "container" )
@@ -252,6 +252,27 @@ public void RenderJavaScriptShouldCallRenderComponentwithReactDOMHydrate()
252
252
) ;
253
253
}
254
254
255
+ [ Fact ]
256
+ public void RenderJavaScriptShouldCallRenderComponentWithReactDomRenderWhenSsrDisabled ( )
257
+ {
258
+ var environment = new Mock < IReactEnvironment > ( ) ;
259
+ var config = CreateDefaultConfigMock ( ) ;
260
+ config . SetupGet ( x => x . UseServerSideRendering ) . Returns ( false ) ;
261
+
262
+ var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
263
+ var component = new ReactComponent ( environment . Object , config . Object , reactIdGenerator . Object , "Foo" , "container" )
264
+ {
265
+ ClientOnly = false ,
266
+ Props = new { hello = "World" }
267
+ } ;
268
+ var result = component . RenderJavaScript ( ) ;
269
+
270
+ Assert . Equal (
271
+ @"ReactDOM.render(React.createElement(Foo, {""hello"":""World""}), document.getElementById(""container""))" ,
272
+ result
273
+ ) ;
274
+ }
275
+
255
276
[ Theory ]
256
277
[ InlineData ( "Foo" , true ) ]
257
278
[ InlineData ( "Foo.Bar" , true ) ]
@@ -278,7 +299,7 @@ public void TestEnsureComponentNameValid(string input, bool expected)
278
299
public void GeneratesContainerIdIfNotProvided ( )
279
300
{
280
301
var environment = new Mock < IReactEnvironment > ( ) ;
281
- var config = new Mock < IReactSiteConfiguration > ( ) ;
302
+ var config = CreateDefaultConfigMock ( ) ;
282
303
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
283
304
reactIdGenerator . Setup ( x => x . Generate ( ) ) . Returns ( "customReactId" ) ;
284
305
@@ -294,7 +315,7 @@ public void ExceptionThrownIsHandled()
294
315
environment . Setup ( x => x . Execute < string > ( @"ReactDOMServer.renderToString(React.createElement(Foo, {""hello"":""World""}))" ) )
295
316
. Throws ( new JsRuntimeException ( "'undefined' is not an object" ) ) ;
296
317
297
- var config = new Mock < IReactSiteConfiguration > ( ) ;
318
+ var config = CreateDefaultConfigMock ( ) ;
298
319
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
299
320
config . Setup ( x => x . ExceptionHandler ) . Returns ( ( ) => throw new ReactServerRenderingException ( "test" ) ) ;
300
321
@@ -347,7 +368,7 @@ public void RenderFunctionsCalled()
347
368
environment . Setup ( x => x . Execute < string > ( @"postrender();" ) )
348
369
. Returns ( "postrender-result" ) ;
349
370
350
- var config = new Mock < IReactSiteConfiguration > ( ) ;
371
+ var config = CreateDefaultConfigMock ( ) ;
351
372
config . Setup ( x => x . UseServerSideRendering ) . Returns ( true ) ;
352
373
var reactIdGenerator = new Mock < IReactIdGenerator > ( ) ;
353
374
@@ -386,6 +407,13 @@ public void ChainedRenderFunctionsCalled()
386
407
Assert . Equal ( "postrender-result" , firstInstance . PostRenderResult ) ;
387
408
Assert . Equal ( "postrender-result" , secondInstance . PostRenderResult ) ;
388
409
}
410
+
411
+ private static Mock < IReactSiteConfiguration > CreateDefaultConfigMock ( )
412
+ {
413
+ var configMock = new Mock < IReactSiteConfiguration > ( ) ;
414
+ configMock . SetupGet ( x => x . UseServerSideRendering ) . Returns ( true ) ;
415
+ return configMock ;
416
+ }
389
417
390
418
private sealed class TestRenderFunctions : RenderFunctionsBase
391
419
{
0 commit comments