public void RenderFunctionsCalled() { var environment = new Mock <IReactEnvironment>(); environment.Setup(x => x.Execute <bool>("typeof Foo !== 'undefined'")).Returns(true); environment.Setup(x => x.Execute <string>(@"outerWrap(ReactDOMServer.renderToString(wrap(React.createElement(Foo, {""hello"":""World""}))))")) .Returns("[HTML]"); environment.Setup(x => x.Execute <string>(@"prerender();")) .Returns("prerender-result"); environment.Setup(x => x.Execute <string>(@"postrender();")) .Returns("postrender-result"); var config = new Mock <IReactSiteConfiguration>(); config.Setup(x => x.UseServerSideRendering).Returns(true); var reactIdGenerator = new Mock <IReactIdGenerator>(); var component = new ReactComponent(environment.Object, config.Object, reactIdGenerator.Object, "Foo", "container") { Props = new { hello = "World" } }; var renderFunctions = new TestRenderFunctions(); var result = component.RenderHtml(renderFunctions: renderFunctions); Assert.Equal(@"<div id=""container"">[HTML]</div>", result); Assert.Equal(@"prerender-result", renderFunctions.PreRenderResult); Assert.Equal(@"postrender-result", renderFunctions.PostRenderResult); }
public void ChainedRenderFunctionsCalled() { var renderFunctions = new TestRenderFunctions(); var chainedRenderFunctions = new TestRenderFunctions(renderFunctions); chainedRenderFunctions.PreRender(a => "prerender-result"); Assert.Equal("prerender-result", renderFunctions.PreRenderResult); Assert.Equal("prerender-result", chainedRenderFunctions.PreRenderResult); string transformed = chainedRenderFunctions.TransformRender("React.createElement('div', null)"); Assert.Equal("wrap(wrap(React.createElement('div', null)))", transformed); chainedRenderFunctions.PostRender(a => "postrender-result"); Assert.Equal("postrender-result", renderFunctions.PostRenderResult); Assert.Equal("postrender-result", chainedRenderFunctions.PostRenderResult); }
public void ChainedRenderFunctionsCalled() { var renderFunctions = new TestRenderFunctions(); var chainedRenderFunctions = new TestRenderFunctions(renderFunctions); chainedRenderFunctions.PreRender(a => "prerender-result"); Assert.Equal("prerender-result", renderFunctions.PreRenderResult); Assert.Equal("prerender-result", chainedRenderFunctions.PreRenderResult); string wrapComponentResult = chainedRenderFunctions.WrapComponent("React.createElement('div', null)"); Assert.Equal("wrap(wrap(React.createElement('div', null)))", wrapComponentResult); Assert.Equal("outerWrap(input)", renderFunctions.TransformRenderedHtml("input")); Assert.Equal("outerWrap(outerWrap(input))", chainedRenderFunctions.TransformRenderedHtml("input")); chainedRenderFunctions.PostRender(a => "postrender-result"); Assert.Equal("postrender-result", renderFunctions.PostRenderResult); Assert.Equal("postrender-result", chainedRenderFunctions.PostRenderResult); }