From 4f496f649a6129d4520e791fdfc7bee852707ae1 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Mon, 29 Jan 2018 10:52:12 +0000 Subject: [PATCH] Add E2E test showing we can pass properties to child components and auto re-render them on change --- .../Tests/ComponentRenderingTest.cs | 16 ++++++++++++++++ .../CounterComponentUsingChild.cshtml | 12 ++++++++++++ .../BasicTestApp/MessageComponent.cshtml | 4 ++++ 3 files changed, 32 insertions(+) create mode 100644 test/testapps/BasicTestApp/CounterComponentUsingChild.cshtml create mode 100644 test/testapps/BasicTestApp/MessageComponent.cshtml diff --git a/test/Microsoft.AspNetCore.Blazor.E2ETest/Tests/ComponentRenderingTest.cs b/test/Microsoft.AspNetCore.Blazor.E2ETest/Tests/ComponentRenderingTest.cs index 40ce4d9d4d..bdf82ceb4b 100644 --- a/test/Microsoft.AspNetCore.Blazor.E2ETest/Tests/ComponentRenderingTest.cs +++ b/test/Microsoft.AspNetCore.Blazor.E2ETest/Tests/ComponentRenderingTest.cs @@ -113,6 +113,22 @@ namespace Microsoft.AspNetCore.Blazor.E2ETest.Tests childComponentWrapper.FindElement(By.TagName("p")).Text); } + [Fact] + public void ChildComponentsRerenderWhenPropertiesChanged() + { + var appElement = MountTestComponent(); + + Assert.Equal( + "Current count: 0", + appElement.FindElement(By.TagName("p")).Text); + + appElement.FindElement(By.TagName("button")).Click(); + + Assert.Equal( + "Current count: 1", + appElement.FindElement(By.TagName("p")).Text); + } + private IWebElement MountTestComponent() where TComponent: IComponent { var componentTypeName = typeof(TComponent).FullName; diff --git a/test/testapps/BasicTestApp/CounterComponentUsingChild.cshtml b/test/testapps/BasicTestApp/CounterComponentUsingChild.cshtml new file mode 100644 index 0000000000..f548a08f35 --- /dev/null +++ b/test/testapps/BasicTestApp/CounterComponentUsingChild.cshtml @@ -0,0 +1,12 @@ +

Counter

+

Current count:

+ + +@functions { + int currentCount = 0; + + void IncrementCount() + { + currentCount++; + } +} diff --git a/test/testapps/BasicTestApp/MessageComponent.cshtml b/test/testapps/BasicTestApp/MessageComponent.cshtml new file mode 100644 index 0000000000..611f596f05 --- /dev/null +++ b/test/testapps/BasicTestApp/MessageComponent.cshtml @@ -0,0 +1,4 @@ +@Message +@functions { + public string Message { get; set; } +}