Skip to content

Commit 64ce6b2

Browse files
committed
test: 更新单元测试
1 parent 217f906 commit 64ce6b2

1 file changed

Lines changed: 50 additions & 6 deletions

File tree

test/UnitTest/Components/UploadCardTest.cs

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone
55

66
using Microsoft.AspNetCore.Components.Forms;
7+
using System.ComponentModel.DataAnnotations;
78

89
namespace UnitTest.Components;
910

@@ -150,20 +151,63 @@ public void ShowFileSize_Ok()
150151
cut.DoesNotContain("upload-item-file-size");
151152
}
152153

154+
private class Dummy
155+
{
156+
[Required]
157+
public List<UploadFile>? Files { get; set; }
158+
}
159+
153160
[Fact]
154-
public void CardUpload_ValidateForm_Ok()
161+
public async Task CardUpload_ValidateForm_Ok()
155162
{
156-
var foo = new Foo();
163+
var invalid = false;
164+
var foo = new Dummy();
157165
var cut = Context.Render<ValidateForm>(pb =>
158166
{
159167
pb.Add(a => a.Model, foo);
160-
pb.AddChildContent<CardUpload<string>>(pb =>
168+
pb.AddChildContent<CardUpload<List<UploadFile>>>(pb =>
161169
{
162-
pb.Add(a => a.Value, foo.Name);
163-
pb.Add(a => a.ValueExpression, foo.GenerateValueExpression());
170+
pb.Add(a => a.Accept, "Image");
171+
pb.Add(a => a.Value, foo.Files);
172+
pb.Add(a => a.ValueExpression, Utility.GenerateValueExpression(foo, "Files", typeof(List<UploadFile>)));
173+
pb.Add(a => a.AllowExtensions, [".jpg"]);
174+
});
175+
pb.Add(a => a.OnValidSubmit, context =>
176+
{
177+
invalid = false;
178+
return Task.CompletedTask;
164179
});
180+
pb.Add(a => a.OnInvalidSubmit, context =>
181+
{
182+
invalid = true;
183+
return Task.CompletedTask;
184+
});
185+
});
186+
187+
// 提交表单
188+
var form = cut.Find("form");
189+
await cut.InvokeAsync(() => form.Submit());
190+
Assert.True(invalid);
191+
192+
var input = cut.FindComponent<InputFile>();
193+
await cut.InvokeAsync(async () =>
194+
{
195+
await input.Instance.OnChange.InvokeAsync(new InputFileChangeEventArgs(new List<MockBrowserFile>()
196+
{
197+
new()
198+
}));
199+
form.Submit();
165200
});
166-
cut.Contains("form-label");
201+
Assert.False(invalid);
202+
203+
// 设置 Disabled 取消校验
204+
var upload = cut.FindComponent<CardUpload<List<UploadFile>>>();
205+
upload.Render(pb =>
206+
{
207+
pb.Add(a => a.IsDisabled, true);
208+
});
209+
210+
Assert.DoesNotContain("is-invalid", upload.Markup);
167211
}
168212

169213
[Fact]

0 commit comments

Comments
 (0)