Skip to content

Commit 9fb03e2

Browse files
Merge pull request #531 from NeoCoderMatrix86/development
Deploy v10.3.0
2 parents a2e13de + af77a2e commit 9fb03e2

66 files changed

Lines changed: 1610 additions & 995 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/run_tests.yml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name: Run Tests
33
on:
44
workflow_call:
55
pull_request:
6+
workflow_dispatch:
67

78
jobs:
89
run-tests:
@@ -34,15 +35,22 @@ jobs:
3435
- name: Wait for app to be ready
3536
run: |
3637
echo "Waiting for http://localhost:5132 to respond..."
38+
success_count=0
3739
for i in {1..60}; do
3840
if curl -sSf http://localhost:5132 >/dev/null; then
39-
echo "App is ready"
41+
success_count=$((success_count+1))
42+
echo "Health check passed ($success_count/5)"
43+
if [ "$success_count" -ge 5 ]; then
44+
echo "App is stable and ready"
4045
exit 0
4146
fi
42-
echo "Waiting for app to start ($i/60)..."
47+
else
48+
success_count=0
49+
echo "Not ready yet ($i/60)..."
50+
fi
4351
sleep 2
4452
done
45-
echo "App failed to start after waiting" >&2
53+
echo "App never became ready" >&2
4654
exit 1
4755
shell: bash
4856

AudioCuesheetEditor.End2EndTests/AudioCuesheetEditor.End2EndTests.csproj

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,8 @@
1616
</PropertyGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
20-
<PackageReference Include="Microsoft.Playwright.MSTest" Version="1.55.0" />
21-
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.0.4" />
22-
<PackageReference Include="Microsoft.Testing.Extensions.TrxReport" Version="1.8.4" />
23-
<PackageReference Include="MSTest" Version="3.10.4" />
19+
<PackageReference Include="Microsoft.Playwright.MSTest.v4" Version="1.57.0" />
20+
<PackageReference Include="MSTest" Version="4.0.2" />
2421
</ItemGroup>
2522

2623
<ItemGroup>
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]

AudioCuesheetEditor.End2EndTests/Models/About.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ internal async Task GotoAsync()
3030
await _page.GotoAsync(BaseUrl);
3131
await _page.WaitForURLAsync(BaseUrl);
3232
await _page.WaitForLoadStateAsync(LoadState.NetworkIdle);
33+
await _page.WaitForFunctionAsync(@"() => window.Blazor !== undefined");
3334
}
3435
}
3536
}

AudioCuesheetEditor.End2EndTests/Models/AppBar.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ internal async Task RedoAsync()
6363
internal async Task OpenFileAsync(string file)
6464
{
6565
await OpenFileDialogAsync();
66-
await _page.Locator("#dropFileInputId_SelectFileDialog").GetByRole(AriaRole.Button, new() { Name = "Choose File" }).ClickAsync();
67-
await _page.Locator("#dropFileInputId_SelectFileDialog").GetByRole(AriaRole.Button, new() { Name = "Choose File" }).SetInputFilesAsync(file);
66+
await _page.GetByLabel("Open file upload").SetInputFilesAsync(file);
6867
}
6968

7069
internal async Task OpenFileDialogAsync()

AudioCuesheetEditor.End2EndTests/Models/DetailView.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ internal async Task GotoAsync()
3737
await _page.GotoAsync(BaseUrl);
3838
await _page.WaitForURLAsync(BaseUrl);
3939
await _page.WaitForLoadStateAsync(LoadState.NetworkIdle);
40+
await _page.WaitForFunctionAsync(@"() => window.Blazor !== undefined");
4041
}
4142

4243
internal async Task AddTrackAsync()

AudioCuesheetEditor.End2EndTests/Models/ImportView.cs

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,15 @@
1818

1919
namespace AudioCuesheetEditor.End2EndTests.Models
2020
{
21-
partial class ImportView(IPage page)
21+
partial class ImportView(IPage page, bool mobile)
2222
{
2323
[GeneratedRegex("^Scheme common data$")]
2424
private static partial Regex SchemeCommonData();
2525

2626
internal const string BaseUrl = "http://localhost:5132/";
2727

2828
private readonly IPage _page = page;
29+
private readonly bool _isMobile = mobile;
2930

3031
internal ILocator CuesheetArtistInput => _page.GetByRole(AriaRole.Textbox, new() { Name = "Cuesheet artist" });
3132

@@ -38,17 +39,36 @@ internal async Task GotoAsync()
3839
await _page.GotoAsync(BaseUrl);
3940
await _page.WaitForURLAsync(BaseUrl);
4041
await _page.WaitForLoadStateAsync(LoadState.NetworkIdle);
42+
await _page.WaitForFunctionAsync(@"() => window.Blazor !== undefined");
4143
await _page.GetByText("Import view").ClickAsync();
4244
}
4345

4446
internal async Task ImportFileAsync(string filepath)
4547
{
46-
await _page.GetByRole(AriaRole.Button, new() { Name = "Choose File" }).SetInputFilesAsync(filepath);
48+
await _page.GetByLabel("TextField file upload").SetInputFilesAsync(filepath);
49+
}
50+
51+
internal async Task ImportTextAsync(string text)
52+
{
53+
await _page.GetByRole(AriaRole.Textbox, new() { Name = "Please enter text or upload a" }).FillAsync(text);
54+
}
55+
56+
internal async Task Analyze()
57+
{
58+
await _page.GetByRole(AriaRole.Button, new() { Name = "Analyze" }).ClickAsync();
4759
}
4860

4961
internal async Task CompleteImportAsync()
5062
{
51-
await _page.GetByRole(AriaRole.Button, new() { Name = "Complete" }).ClickAsync();
63+
if (_isMobile)
64+
{
65+
await _page.Locator(".mud-button-root.mud-fab").ClickAsync();
66+
await _page.GetByText("Import data").ClickAsync();
67+
}
68+
else
69+
{
70+
await _page.GetByRole(AriaRole.Button, new() { Name = "Import data" }).ClickAsync();
71+
}
5272
}
5373

5474
internal async Task SelectTracksAsync(IEnumerable<int> trackTablePositions, Boolean uncheck = false)

AudioCuesheetEditor.End2EndTests/Models/RecordView.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ internal async Task GotoAsync()
2828
await _page.GotoAsync(BaseUrl);
2929
await _page.WaitForURLAsync(BaseUrl);
3030
await _page.WaitForLoadStateAsync(LoadState.NetworkIdle);
31+
await _page.WaitForFunctionAsync(@"() => window.Blazor !== undefined");
3132
await _page.GetByText("Record view").ClickAsync();
3233
}
3334

AudioCuesheetEditor.End2EndTests/Tests/Desktop/BasicTest.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,6 @@ public async Task KeyboardCommands_ShouldControlDialogs_WhenUsingEnterOrEscapeAs
110110
var bar = new AppBar(TestPage);
111111
var detailView = new DetailView(TestPage, DeviceName != null);
112112
await detailView.GotoAsync();
113-
await bar.OpenFileDialogAsync();
114-
await Expect(TestPage.GetByRole(AriaRole.Dialog)).ToBeVisibleAsync();
115-
await TestPage.Keyboard.PressAsync("Escape");
116113
await TestPage.GetByRole(AriaRole.Dialog).WaitForAsync(new() { State = WaitForSelectorState.Detached });
117114
await bar.OpenExportDialogAsync("Cuesheet");
118115
await Expect(TestPage.GetByRole(AriaRole.Dialog)).ToBeVisibleAsync();

AudioCuesheetEditor.End2EndTests/Tests/Desktop/ExportTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public async Task DownloadCuesheet_GeneratesCuesheetFile_WhenCuesheetIsValid()
3838
var download = await downloadTask;
3939
using var stream = await download.CreateReadStreamAsync();
4040
using var reader = new StreamReader(stream);
41-
var content = await reader.ReadToEndAsync(TestContext.CancellationTokenSource.Token);
41+
var content = await reader.ReadToEndAsync(TestContext.CancellationToken);
4242
content = content.Replace("\n", Environment.NewLine);
4343
Assert.AreEqual(@"TITLE ""Cuesheet Title 1""
4444
PERFORMER ""Cuesheet Artist 1""
@@ -67,7 +67,7 @@ public async Task DownloadProject_GeneratesProjectFile_WhenCuesheetIsValidAsync(
6767
var download = await downloadTask;
6868
using var stream = await download.CreateReadStreamAsync();
6969
using var reader = new StreamReader(stream);
70-
var content = await reader.ReadToEndAsync(TestContext.CancellationTokenSource.Token);
70+
var content = await reader.ReadToEndAsync(TestContext.CancellationToken);
7171
Assert.AreEqual("{\"Tracks\":[{\"Position\":1,\"Artist\":\"Track Artist 1\",\"Title\":\"Track Title 1\",\"Begin\":\"00:00:00\",\"End\":\"00:05:48\",\"Flags\":[],\"IsLinkedToPreviousTrack\":true}],\"Artist\":\"Cuesheet Artist 1\",\"Title\":\"Cuesheet Title 1\",\"Audiofile\":{\"Name\":\"Kalimba.mp3\",\"Duration\":\"00:05:48\",\"AudioCodec\":{\"MimeType\":\"audio/mpeg\",\"FileExtension\":\".mp3\",\"Name\":\"AudioCodec MP3\"}},\"Sections\":[]}", content);
7272
}
7373

@@ -89,7 +89,7 @@ public async Task DownloadText_GeneratesTextFile_WhenCuesheetIsValidAsync()
8989
var download = await downloadTask;
9090
using var stream = await download.CreateReadStreamAsync();
9191
using var reader = new StreamReader(stream);
92-
var content = await reader.ReadToEndAsync(TestContext.CancellationTokenSource.Token);
92+
var content = await reader.ReadToEndAsync(TestContext.CancellationToken);
9393
content = content.Replace("\n", Environment.NewLine);
9494
Assert.AreEqual(@"Cuesheet Artist 1 - Cuesheet Title 1
9595
Track Artist 1 - Track Title 1 00:00:00

0 commit comments

Comments
 (0)