Skip to content

Commit 61c05b9

Browse files
Merge pull request #59 from yueyinqiu/tests
tests
2 parents b185b25 + ecf7797 commit 61c05b9

File tree

7 files changed

+89
-19
lines changed

7 files changed

+89
-19
lines changed

E2eTest/SingleRecordBasicTest.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ public async Task AddTest()
2424
[
2525
{
2626
"id":12,
27-
"normal":"Norm",
27+
"Normal":"Norm",
2828
"Renamed":"R",
2929
"Index":"I",
3030
"UniqueIndex":"633a97d2-0c92-4c68-883b-364f94ad6030",
31-
"enum":0,
32-
"nested":{"value":1234},
33-
"largeNumber":9007199254740991
31+
"Enum":0,
32+
"Nested":{"value":1234},
33+
"LargeNumber":9007199254740991
3434
}
3535
]
3636
""", records);
@@ -67,13 +67,13 @@ public async Task UpdateTest()
6767
[
6868
{
6969
"id":12,
70-
"normal":"Updated",
70+
"Normal":"Updated",
7171
"Renamed":"R",
7272
"Index":"I",
7373
"UniqueIndex":"633a97d2-0c92-4c68-883b-364f94ad6030",
74-
"enum":0,
75-
"nested":{"value":1234},
76-
"largeNumber":9007199254740991
74+
"Enum":0,
75+
"Nested":{"value":1234},
76+
"LargeNumber":9007199254740991
7777
}
7878
]
7979
""", records);

E2eTest/WhereTest.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using E2eTest.Entities;
2+
using E2eTest.Extensions;
3+
using E2eTestWebApp.TestPages;
4+
5+
namespace E2eTest;
6+
7+
[TestClass]
8+
public class WhereTest : TestBase<WhereTestPage>
9+
{
10+
[TestMethod]
11+
public async Task Where1Test()
12+
{
13+
var page = await this.NewPageAsync();
14+
await page.DeleteDatabaseAsync("Where.Where1");
15+
var result = await this.RunTestPageMethodAsync(p => p.Where1);
16+
Assert.That.AreJsonEqual("[1,2]", result);
17+
}
18+
}

E2eTestWebApp/TestPages/TestPageBase.razor

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
<input data-testid="method" type="text" @bind-value="@method" />
44
<input data-testid="run" type="button" @onclick="@RunAsync" />
55

6-
<input data-testid="output" type="text" @bind-value="@output" />
7-
<input data-testid="clear" type="button" @onclick="@Clear" />
6+
<textarea data-testid="output">@output</textarea>
7+
<input data-testid="clear" type="button" @onclick="@Clear" />

E2eTestWebApp/TestPages/TestPageBase.razor.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,7 @@ private async Task RunAsync()
3535
}
3636
catch (Exception ex)
3737
{
38-
this.output = JsonSerializer.Serialize(new Dictionary<string, string>()
39-
{
40-
["Exception"] = ex.GetType().ToString(),
41-
["Message"] = ex.Message,
42-
["StackTrace"] = ex.StackTrace ?? "",
43-
});
38+
this.output = ex.ToString();
4439
}
4540
}
4641

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
using Magic.IndexedDb;
2+
using Magic.IndexedDb.Helpers;
3+
using Microsoft.AspNetCore.Components;
4+
using System.Text.Json;
5+
6+
namespace E2eTestWebApp.TestPages;
7+
8+
[Route("/WhereTest")]
9+
public class WhereTestPage(IMagicDbFactory magic) : TestPageBase
10+
{
11+
[MagicTable("Records", null)]
12+
private class Record
13+
{
14+
[MagicPrimaryKey("Id")]
15+
public int Id { get; set; }
16+
17+
public int Int32Field { get; set; }
18+
}
19+
20+
public async Task<string> Where1()
21+
{
22+
var database = await magic.OpenAsync(new DbStore()
23+
{
24+
Name = "Where.Where1",
25+
Version = 1,
26+
StoreSchemas = [SchemaHelper.GetStoreSchema(typeof(Record))]
27+
});
28+
await database.AddAsync<Record, int>(new Record()
29+
{
30+
Id = 1,
31+
Int32Field = 1
32+
});
33+
await database.AddAsync<Record, int>(new Record()
34+
{
35+
Id = 2,
36+
Int32Field = 2
37+
});
38+
await database.AddAsync<Record, int>(new Record()
39+
{
40+
Id = 3,
41+
Int32Field = 3
42+
});
43+
var result = await database
44+
.Where<Record>(x => x.Int32Field < 3)
45+
.ToListAsync();
46+
return JsonSerializer.Serialize(result.Select(x => x.Id));
47+
}
48+
}

Magic.IndexedDb/Factories/MagicDbFactory.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,19 @@ public async ValueTask DisposeAsync()
4040
var timeout = new CancellationTokenSource(TimeSpan.FromSeconds(10));
4141
await module.InvokeVoidAsync(IndexedDbFunctions.CLOSE_ALL, timeout.Token);
4242
}
43-
finally
43+
catch
44+
{
45+
// do nothing
46+
}
47+
48+
try
4449
{
4550
await module.DisposeAsync();
4651
}
52+
catch
53+
{
54+
// do nothing
55+
}
4756
}
4857

4958
public async ValueTask<IndexedDbManager> OpenAsync(

Magic.IndexedDb/Helpers/MagicSerializationHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ public static string SerializeObject<T>(T value, MagicJsonSerializationSettings?
7272
if (string.IsNullOrWhiteSpace(json))
7373
throw new ArgumentException("JSON cannot be null or empty.", nameof(json));
7474

75-
if (settings == null)
76-
settings = new MagicJsonSerializationSettings();
75+
// if (settings == null)
76+
// settings = new MagicJsonSerializationSettings();
7777

7878
var options = settings.GetOptionsWithResolver<T>(); // Ensure correct resolver for deserialization
7979

0 commit comments

Comments
 (0)