Skip to content

Commit abb823e

Browse files
committed
fix: clean up tests
1 parent 1196085 commit abb823e

5 files changed

Lines changed: 52 additions & 16 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Reflection;
2+
using Xunit.Sdk;
3+
4+
namespace Xunit;
5+
6+
public sealed class RepeatAttribute : DataAttribute
7+
{
8+
public int Count { get; }
9+
10+
public RepeatAttribute(int count)
11+
{
12+
if (count < 1)
13+
{
14+
throw new ArgumentOutOfRangeException(
15+
paramName: nameof(count),
16+
message: "Repeat count must be greater than 0.");
17+
}
18+
19+
Count = count;
20+
}
21+
22+
public override IEnumerable<object[]> GetData(MethodInfo testMethod)
23+
{
24+
for (int count = 1; count <= Count; count++)
25+
{
26+
yield return new object[] { count };
27+
}
28+
}
29+
}

tests/bunit.web.tests/BlazorE2E/ComponentRenderingTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@ public void CanHandleRemovedParentObjects_Sync()
674674

675675
cut.Find("button").Click();
676676

677-
cut.WaitForStateAsync(() => !cut.FindAll("div").Any());
677+
cut.WaitForState(() => !cut.FindAll("div").Any());
678678
cut.FindAll("div").Count.ShouldBe(0);
679679
}
680680

tests/bunit.web.tests/EventDispatchExtensions/GeneralEventDispatchExtensionsTest.cs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
using AngleSharp;
22
using AngleSharp.Dom;
33
using Bunit.Rendering;
4+
using Xunit.Abstractions;
45

56
namespace Bunit;
67

78
public class GeneralEventDispatchExtensionsTest : EventDispatchExtensionsTest<EventArgs>
89
{
910
protected override string ElementName => "p";
1011

12+
public GeneralEventDispatchExtensionsTest(ITestOutputHelper outputHelper)
13+
{
14+
Services.AddXunitLogger(outputHelper);
15+
}
16+
1117
[Theory(DisplayName = "General events are raised correctly through helpers")]
1218
[MemberData(nameof(GetEventHelperMethods), typeof(GeneralEventDispatchExtensions))]
1319
public void CanRaiseEvents(MethodInfo helper)
@@ -314,16 +320,13 @@ public void Test309(string submitElementSelector)
314320
cut.Instance.Clicked.ShouldBeTrue();
315321
}
316322

317-
public static IEnumerable<object[]> GetTenNumbers() => Enumerable.Range(0, 10)
318-
.Select(i => new object[] { i });
319-
320323
// Runs the test multiple times to trigger the race condition
321324
// reliably.
322325
[SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Needed to trigger multiple reruns of test.")]
323326
[Theory(DisplayName = "TriggerEventAsync avoids race condition with DOM tree updates")]
324-
[MemberData(nameof(GetTenNumbers))]
327+
[Repeat(10)]
325328
[Trait("Category", "async")]
326-
public async Task Test400(int i)
329+
public async Task Test400(int repeatCount)
327330
{
328331
var cut = RenderComponent<CounterComponentDynamic>();
329332

@@ -338,9 +341,9 @@ public async Task Test400(int i)
338341
// reliably.
339342
[SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "Needed to trigger multiple reruns of test.")]
340343
[Theory(DisplayName = "TriggerEventAsync avoids race condition with DOM tree updates")]
341-
[MemberData(nameof(GetTenNumbers))]
342-
[Trait("Category", "sync")]
343-
public async Task Test400_Sync(int i)
344+
[Repeat(10)]
345+
[Trait("Category", "sync")]
346+
public async Task Test400_Sync(int repeatCount)
344347
{
345348
var cut = RenderComponent<CounterComponentDynamic>();
346349

tests/bunit.web.tests/Extensions/WaitForHelpers/RenderedFragmentWaitForElementsHelperExtensions.Async.Test.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ namespace Bunit.Extensions.WaitForHelpers;
55

66
public class RenderedFragmentWaitForElementsHelperExtensionsAsyncTest : TestContext
77
{
8-
public RenderedFragmentWaitForElementsHelperExtensionsAsyncTest(ITestOutputHelper testOutput)
8+
private readonly static TimeSpan WaitForTestTimeout = TimeSpan.FromMilliseconds(5);
9+
10+
public RenderedFragmentWaitForElementsHelperExtensionsAsyncTest(ITestOutputHelper testOutput)
911
{
1012
Services.AddXunitLogger(testOutput);
1113
}
@@ -29,7 +31,7 @@ public async Task Test002()
2931
var cut = RenderComponent<DelayRenderFragment>();
3032

3133
var expected = await Should.ThrowAsync<WaitForFailedException>(async () =>
32-
await cut.WaitForElementAsync("#notHereElm", TimeSpan.FromMilliseconds(10)));
34+
await cut.WaitForElementAsync("#notHereElm", WaitForTestTimeout));
3335

3436
expected.Message.ShouldStartWith(WaitForElementHelper.TimeoutBeforeFoundMessage);
3537
}
@@ -53,7 +55,7 @@ public async Task Test022()
5355
var cut = RenderComponent<DelayRenderFragment>();
5456

5557
var expected = await Should.ThrowAsync<WaitForFailedException>(async () =>
56-
await cut.WaitForElementsAsync("#notHereElm", TimeSpan.FromMilliseconds(30)));
58+
await cut.WaitForElementsAsync("#notHereElm", WaitForTestTimeout));
5759

5860
expected.Message.ShouldStartWith(WaitForElementsHelper.TimeoutBeforeFoundMessage);
5961
expected.InnerException.ShouldBeNull();
@@ -66,7 +68,7 @@ public async Task Test023()
6668
var cut = RenderComponent<DelayRenderFragment>();
6769

6870
var expected = await Should.ThrowAsync<WaitForFailedException>(async () =>
69-
await cut.WaitForElementsAsync("#notHereElm", 2, TimeSpan.FromMilliseconds(30)));
71+
await cut.WaitForElementsAsync("#notHereElm", 2, WaitForTestTimeout));
7072

7173
expected.Message.ShouldStartWith(string.Format(CultureInfo.InvariantCulture, WaitForElementsHelper.TimeoutBeforeFoundWithCountMessage, 2));
7274
expected.InnerException.ShouldBeNull();

tests/bunit.web.tests/Extensions/WaitForHelpers/RenderedFragmentWaitForElementsHelperExtensionsTest.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ namespace Bunit.Extensions.WaitForHelpers;
55

66
public class RenderedFragmentWaitForElementsHelperExtensionsTest : TestContext
77
{
8+
private readonly static TimeSpan WaitForTestTimeout = TimeSpan.FromMilliseconds(5);
9+
810
public RenderedFragmentWaitForElementsHelperExtensionsTest(ITestOutputHelper testOutput)
911
{
1012
Services.AddXunitLogger(testOutput);
@@ -29,7 +31,7 @@ public void Test002()
2931
var cut = RenderComponent<DelayRenderFragment>();
3032

3133
var expected = Should.Throw<WaitForFailedException>(() =>
32-
cut.WaitForElement("#notHereElm", TimeSpan.FromMilliseconds(10)));
34+
cut.WaitForElement("#notHereElm", WaitForTestTimeout));
3335

3436
expected.Message.ShouldStartWith(WaitForElementHelper.TimeoutBeforeFoundMessage);
3537
}
@@ -53,7 +55,7 @@ public void Test022()
5355
var cut = RenderComponent<DelayRenderFragment>();
5456

5557
var expected = Should.Throw<WaitForFailedException>(() =>
56-
cut.WaitForElements("#notHereElm", TimeSpan.FromMilliseconds(30)));
58+
cut.WaitForElements("#notHereElm", WaitForTestTimeout));
5759

5860
expected.Message.ShouldStartWith(WaitForElementsHelper.TimeoutBeforeFoundMessage);
5961
expected.InnerException.ShouldBeNull();
@@ -66,7 +68,7 @@ public void Test023()
6668
var cut = RenderComponent<DelayRenderFragment>();
6769

6870
var expected = Should.Throw<WaitForFailedException>(() =>
69-
cut.WaitForElements("#notHereElm", 2, TimeSpan.FromMilliseconds(30)));
71+
cut.WaitForElements("#notHereElm", 2, WaitForTestTimeout));
7072

7173
expected.Message.ShouldStartWith(string.Format(CultureInfo.InvariantCulture, WaitForElementsHelper.TimeoutBeforeFoundWithCountMessage, 2));
7274
expected.InnerException.ShouldBeNull();

0 commit comments

Comments
 (0)