Support "@inherits ..." directive
This commit is contained in:
parent
a639cab50f
commit
782ca0137d
|
|
@ -22,6 +22,7 @@ namespace Microsoft.AspNetCore.Blazor.Razor
|
||||||
_engine = RazorEngine.Create(configure =>
|
_engine = RazorEngine.Create(configure =>
|
||||||
{
|
{
|
||||||
FunctionsDirective.Register(configure);
|
FunctionsDirective.Register(configure);
|
||||||
|
InheritsDirective.Register(configure);
|
||||||
TemporaryLayoutPass.Register(configure);
|
TemporaryLayoutPass.Register(configure);
|
||||||
TemporaryImplementsPass.Register(configure);
|
TemporaryImplementsPass.Register(configure);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -405,6 +405,22 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
||||||
frame => AssertFrame.Text(frame, "Hello"));
|
frame => AssertFrame.Text(frame, "Hello"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void SupportsInheritsDirective()
|
||||||
|
{
|
||||||
|
// Arrange/Act
|
||||||
|
var testBaseClassTypeName = typeof(TestBaseClass).FullName.Replace('+', '.');
|
||||||
|
var component = CompileToComponent(
|
||||||
|
$"@inherits {testBaseClassTypeName}" + Environment.NewLine +
|
||||||
|
$"Hello");
|
||||||
|
var frames = GetRenderTree(component);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.IsAssignableFrom<TestBaseClass>(component);
|
||||||
|
Assert.Collection(frames,
|
||||||
|
frame => AssertFrame.Text(frame, "Hello"));
|
||||||
|
}
|
||||||
|
|
||||||
private static RenderTreeFrame[] GetRenderTree(IComponent component)
|
private static RenderTreeFrame[] GetRenderTree(IComponent component)
|
||||||
{
|
{
|
||||||
var renderer = new TestRenderer();
|
var renderer = new TestRenderer();
|
||||||
|
|
@ -554,5 +570,7 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ITestInterface { }
|
public interface ITestInterface { }
|
||||||
|
|
||||||
|
public class TestBaseClass : BlazorComponent { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue