diff --git a/src/Shared/Dapr/Core/IDaprSidecarResource.cs b/src/Shared/Dapr/Core/IDaprSidecarResource.cs
index 8c084236..b611323f 100644
--- a/src/Shared/Dapr/Core/IDaprSidecarResource.cs
+++ b/src/Shared/Dapr/Core/IDaprSidecarResource.cs
@@ -8,6 +8,6 @@ namespace CommunityToolkit.Aspire.Hosting.Dapr;
///
/// Represents a Dapr sidecar resource.
///
-public interface IDaprSidecarResource : IResource
+public interface IDaprSidecarResource : IResource, IResourceWithWaitSupport
{
}
diff --git a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/WithDaprSidecarTests.cs b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/WithDaprSidecarTests.cs
index ce9ce838..0156c49d 100644
--- a/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/WithDaprSidecarTests.cs
+++ b/tests/CommunityToolkit.Aspire.Hosting.Dapr.Tests/WithDaprSidecarTests.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Aspire.Hosting;
+using Aspire.Hosting.ApplicationModel;
namespace CommunityToolkit.Aspire.Hosting.Dapr.Tests;
@@ -60,4 +61,29 @@ public void OptionsCanBeConfiguredUsingCallback()
Assert.Equal("appId", annotation.Options.AppId);
}
+
+ [Fact]
+ public void DaprSidecarSupportsWaitFor()
+ {
+ var builder = DistributedApplication.CreateBuilder();
+
+ builder.AddProject("service-a")
+ .WithDaprSidecar();
+
+ var sidecarResource = Assert.Single(builder.Resources.OfType());
+
+ // Verify that IDaprSidecarResource implements IResourceWithWaitSupport
+ Assert.IsAssignableFrom(sidecarResource);
+
+ // Create a resource builder and use it with WaitFor
+ var sidecarResourceBuilder = builder.CreateResourceBuilder(sidecarResource);
+
+ var serviceB = builder.AddProject("service-b")
+ .WaitFor(sidecarResourceBuilder);
+
+ // Verify the wait annotation was added
+ Assert.NotNull(serviceB);
+ var waitAnnotation = Assert.Single(serviceB.Resource.Annotations.OfType());
+ Assert.Equal(sidecarResource.Name, waitAnnotation.Resource.Name);
+ }
}