Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }