Skip to content

Commit e7c26db

Browse files
committed
Add unit tests for renderReactAttributes parameter in ReactComponent Render method
1 parent 717c6d4 commit e7c26db

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

src/React.Tests/Core/ReactComponentTest.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public void RenderHtmlShouldWrapComponentInDiv()
6464
}
6565

6666
[Test]
67-
public void RenderHtmlShouldNotRenderComponentHTML()
67+
public void RenderHtmlShouldNotRenderComponentHtml()
6868
{
6969
var environment = new Mock<IReactEnvironment>();
7070
environment.Setup(x => x.Execute<bool>("typeof Foo !== 'undefined'")).Returns(true);
@@ -82,6 +82,22 @@ public void RenderHtmlShouldNotRenderComponentHTML()
8282
environment.Verify(x => x.Execute(It.IsAny<string>()), Times.Never);
8383
}
8484

85+
[Test]
86+
public void RenderHtmlShouldNotRenderReactAttributes()
87+
{
88+
var environment = new Mock<IReactEnvironment>();
89+
environment.Setup(x => x.Execute<bool>("typeof Foo !== 'undefined'")).Returns(true);
90+
var config = new Mock<IReactSiteConfiguration>();
91+
92+
var component = new ReactComponent(environment.Object, config.Object, "Foo", "container")
93+
{
94+
Props = new { hello = "World" }
95+
};
96+
component.RenderHtml(renderReactAttributes: false);
97+
98+
environment.Verify(x => x.Execute<string>(@"React.renderToStaticMarkup(React.createElement(Foo, {""hello"":""World""}))"));
99+
}
100+
85101
[Test]
86102
public void RenderHtmlShouldWrapComponentInCustomElement()
87103
{

src/React.Tests/Mvc/HtmlHelperExtensionsTests.cs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void ReactWithInitShouldReturnHtmlAndScript()
5959
public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue()
6060
{
6161
var component = new Mock<IReactComponent>();
62-
component.Setup(x => x.RenderHtml(true, false)).Returns("HTML");
62+
component.Setup(x => x.RenderHtml(true, true)).Returns("HTML");
6363
var environment = ConfigureMockEnvironment();
6464
environment.Setup(x => x.CreateComponent(
6565
"ComponentName",
@@ -73,9 +73,31 @@ public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue()
7373
props: new { },
7474
htmlTag: "span",
7575
clientOnly: true,
76-
renderReactAttributes: false
76+
renderReactAttributes: true
7777
);
78-
component.Verify(x => x.RenderHtml(It.Is<bool>(y => y == true), It.Is<bool>(z => z == false)), Times.Once);
78+
component.Verify(x => x.RenderHtml(It.Is<bool>(y => y == true), It.Is<bool>(z => z == true)), Times.Once);
7979
}
80+
81+
[Test]
82+
public void ReactWithRenderReactAttributesfalseShouldCallRenderHtmlWithfalse() {
83+
var component = new Mock<IReactComponent>();
84+
component.Setup(x => x.RenderHtml(true, false)).Returns("HTML");
85+
var environment = ConfigureMockEnvironment();
86+
environment.Setup(x => x.CreateComponent(
87+
"ComponentName",
88+
new { },
89+
null
90+
)).Returns(component.Object);
91+
92+
var result = HtmlHelperExtensions.React(
93+
htmlHelper: null,
94+
componentName: "ComponentName",
95+
props: new { },
96+
htmlTag: "span",
97+
clientOnly: true,
98+
renderReactAttributes: false
99+
);
100+
component.Verify(x => x.RenderHtml(It.Is<bool>(y => y == true), It.Is<bool>(z => z == false)), Times.Once);
101+
}
80102
}
81103
}

0 commit comments

Comments
 (0)