Skip to content

Commit 42ac271

Browse files
committed
Added Tests
1 parent 1ebfde5 commit 42ac271

1 file changed

Lines changed: 113 additions & 0 deletions

File tree

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
using AwesomeAssertions;
2+
using Bunit;
3+
using MudExtensions.UnitTests.Extensions;
4+
5+
namespace MudExtensions.UnitTests.Components;
6+
7+
[TestFixture]
8+
public class CodeViewerTests : BunitTest
9+
{
10+
[Test]
11+
public void CodeViewer_DefaultRender_Test()
12+
{
13+
var comp = Context.Render<MudCodeViewer>(p => p
14+
.Add(x => x.Code, "public class Test {}")
15+
.Add(x => x.Language, CodeLanguage.CSharp)
16+
);
17+
18+
var pre = comp.Find("pre");
19+
var code = comp.Find("code");
20+
21+
code.ClassList.Should().Contain("language-csharp");
22+
pre.ClassList.Should().Contain("language-csharp");
23+
}
24+
25+
[Test]
26+
public void CodeViewer_LineNumbers_Class_Test()
27+
{
28+
var comp = Context.Render<MudCodeViewer>(p => p
29+
.Add(x => x.Code, "test")
30+
.Add(x => x.ShowLineNumbers, true)
31+
);
32+
33+
var pre = comp.Find("pre");
34+
pre.ClassList.Should().Contain("line-numbers");
35+
}
36+
37+
[Test]
38+
public void CodeViewer_Header_Render_Test()
39+
{
40+
var comp = Context.Render<MudCodeViewer>(p => p
41+
.Add(x => x.Code, "test")
42+
.Add(x => x.ShowHeader, true)
43+
);
44+
45+
comp.Find(".mud-codeviewer-header").Should().NotBeNull();
46+
}
47+
48+
[Test]
49+
public void CodeViewer_Editable_Mode_Test()
50+
{
51+
var comp = Context.Render<MudCodeViewer>(p => p
52+
.Add(x => x.Code, "test")
53+
.Add(x => x.Editable, true)
54+
);
55+
56+
comp.Find("textarea").Should().NotBeNull();
57+
}
58+
59+
[Test]
60+
public void CodeViewer_Should_Call_Highlight_On_FirstRender()
61+
{
62+
var jsMock = Context.JSInterop.SetupVoid("MudCode.highlight", _ => true);
63+
64+
var comp = Context.Render<MudCodeViewer>(p => p
65+
.Add(x => x.Code, "test")
66+
);
67+
68+
jsMock.VerifyInvoke("MudCode.highlight");
69+
}
70+
71+
[Test]
72+
public void CodeViewer_Language_Change_Should_Update_Class()
73+
{
74+
var comp = Context.Render<MudCodeViewer>(p => p
75+
.Add(x => x.Code, "test")
76+
.Add(x => x.Language, CodeLanguage.CSharp)
77+
);
78+
79+
comp.SetParametersAndRenderAsync(p => p
80+
.Add(x => x.Language, CodeLanguage.JavaScript)
81+
);
82+
83+
comp.Find("code").ClassList.Should().Contain("language-javascript");
84+
}
85+
86+
[Test]
87+
public void CodeViewer_Copy_Should_Invoke_JS()
88+
{
89+
var jsMock = Context.JSInterop.SetupVoid("MudCode.copy", _ => true);
90+
91+
var comp = Context.Render<MudCodeViewer>(p => p
92+
.Add(x => x.Code, "copy me")
93+
.Add(x => x.ShowCopyButton, true)
94+
);
95+
96+
comp.Find("button").Click();
97+
98+
jsMock.VerifyInvoke("MudCode.copy");
99+
}
100+
101+
[Test]
102+
public void CodeViewer_EnableTabIndent_Only_When_Editable()
103+
{
104+
var jsMock = Context.JSInterop.SetupVoid("MudCode.enableTabIndent", _ => true);
105+
106+
var comp = Context.Render<MudCodeViewer>(p => p
107+
.Add(x => x.Code, "test")
108+
.Add(x => x.Editable, true)
109+
);
110+
111+
jsMock.VerifyInvoke("MudCode.enableTabIndent");
112+
}
113+
}

0 commit comments

Comments
 (0)