Skip to content

Commit 2e29e02

Browse files
Merge pull request #545 from NeoCoderMatrix86/development
Deploy v11.0.0
2 parents e4cbbc7 + dcaf006 commit 2e29e02

67 files changed

Lines changed: 1224 additions & 735 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.

.editorconfig

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1 @@
1-
[*.cs]
2-
3-
# IDE0016: throw-Ausdruck verwenden
4-
csharp_style_throw_expression = false:suggestion
5-
6-
# IDE0057: Bereichsoperator verwenden
7-
csharp_style_prefer_range_operator = false:suggestion
1+
[*.cs]

.github/workflows/build_pipeline.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,22 @@ jobs:
1515
runs-on: ubuntu-latest
1616

1717
steps:
18-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@v6
1919

20-
# version can be found here https://dotnet.microsoft.com/en-us/download/dotnet/9.0
20+
# version can be found here https://dotnet.microsoft.com/en-us/download/dotnet/10.0
2121
- name: Setup .NET
22-
uses: actions/setup-dotnet@v4
22+
uses: actions/setup-dotnet@v5
2323
with:
24-
dotnet-version: 9.0.x
24+
dotnet-version: 10.0.x
2525

2626
- name: Install wasm-tools
27-
run: dotnet workload install wasm-tools-net9
27+
run: dotnet workload install wasm-tools
2828

2929
- name: Build release
3030
run: dotnet publish AudioCuesheetEditor --configuration Release --output release
3131

3232
- name: Upload Build Artifact
33-
uses: actions/upload-artifact@v4
33+
uses: actions/upload-artifact@v6
3434
with:
3535
name: AudioCuesheetEditor-Release
3636
path: ./release
@@ -45,7 +45,7 @@ jobs:
4545
}}
4646
steps:
4747
- name: Download Build Artifact
48-
uses: actions/download-artifact@v4
48+
uses: actions/download-artifact@v7
4949
with:
5050
name: AudioCuesheetEditor-Release
5151
- name: Deploy to Netlify

.github/workflows/run_tests.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,25 @@ jobs:
99
run-tests:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v4.2.2
12+
- uses: actions/checkout@v6
1313

1414
- name: Set timestamp variable
1515
id: timestamp
1616
run: echo "datetime=$(date +'%Y-%m-%d_%H-%M-%S')" >> $GITHUB_OUTPUT
1717

18-
# version can be found here https://dotnet.microsoft.com/en-us/download/dotnet/9.0
18+
# version can be found here https://dotnet.microsoft.com/en-us/download/dotnet/10.0
1919
- name: Setup .NET
20-
uses: actions/setup-dotnet@v4
20+
uses: actions/setup-dotnet@v5
2121
with:
22-
dotnet-version: 9.0.x
22+
dotnet-version: 10.0.x
2323

2424
- name: Install wasm-tools
25-
run: dotnet workload install wasm-tools-net9
25+
run: dotnet workload install wasm-tools
2626

2727
- name: Build & Install
2828
run: dotnet build
2929
- name: Ensure browsers are installed
30-
run: pwsh AudioCuesheetEditor.End2EndTests/bin/Debug/net9.0/playwright.ps1 install --with-deps
30+
run: pwsh AudioCuesheetEditor.End2EndTests/bin/Debug/net10.0/playwright.ps1 install --with-deps
3131

3232
- name: Start App
3333
run: dotnet run --project AudioCuesheetEditor &
@@ -59,8 +59,8 @@ jobs:
5959

6060
- name: Upload traces
6161
if: always()
62-
uses: actions/upload-artifact@v4
62+
uses: actions/upload-artifact@v6
6363
with:
6464
name: playwright-traces-${{ steps.timestamp.outputs.datetime }}
65-
path: AudioCuesheetEditor.End2EndTests/bin/Debug/net9.0/playwright-traces/
65+
path: AudioCuesheetEditor.End2EndTests/bin/Debug/net10.0/playwright-traces/
6666
if-no-files-found: ignore

AudioCuesheetEditor.End2EndTests/AudioCuesheetEditor.End2EndTests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net9.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55
<LangVersion>latest</LangVersion>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<Nullable>enable</Nullable>
@@ -16,8 +16,8 @@
1616
</PropertyGroup>
1717

1818
<ItemGroup>
19-
<PackageReference Include="Microsoft.Playwright.MSTest.v4" Version="1.57.0" />
20-
<PackageReference Include="MSTest" Version="4.0.2" />
19+
<PackageReference Include="Microsoft.Playwright.MSTest.v4" Version="1.58.0" />
20+
<PackageReference Include="MSTest" Version="4.1.0" />
2121
</ItemGroup>
2222

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

AudioCuesheetEditor.End2EndTests/Models/AppBar.cs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,32 @@
1818

1919
namespace AudioCuesheetEditor.End2EndTests.Models
2020
{
21-
partial class AppBar
21+
partial class AppBar(IPage page)
2222
{
2323
[GeneratedRegex("^Open$")]
2424
private static partial Regex OpenRegex();
2525

26-
private readonly IPage _page;
27-
private readonly ILocator _menuButton;
26+
private readonly IPage _page = page;
27+
internal ILocator MenuButton => _page.GetByRole(AriaRole.Toolbar).GetByRole(AriaRole.Button, new() { Name = "More" });
2828

2929
internal ILocator UndoButton => _page.GetByRole(AriaRole.Button, new() { Name = "undo" });
3030

3131
internal ILocator RedoButton => _page.GetByRole(AriaRole.Button, new() { Name = "redo" });
3232

3333
internal ILocator HomeButton => _page.Locator(".mud-button-root").First;
3434

35-
internal AppBar(IPage page)
36-
{
37-
_page = page;
38-
_menuButton = _page.GetByRole(AriaRole.Button, new() { Name = "More" });
39-
}
40-
4135
internal async Task OpenSettingsAsync()
4236
{
43-
await _menuButton.ClickAsync();
37+
await MenuButton.ClickAsync();
4438
await _page.GetByText("Settings").ClickAsync();
4539
}
4640

4741
internal async Task ChangeLanguageAsync(string language)
4842
{
4943
await _page.GetByRole(AriaRole.Button, new() { Name = "Change language" }).ClickAsync();
5044
await _page.GetByText(language).ClickAsync();
45+
await _page.WaitForLoadStateAsync(LoadState.NetworkIdle);
46+
await _page.WaitForFunctionAsync(@"() => window.Blazor !== undefined");
5147
}
5248

5349
internal async Task UndoAsync()
@@ -81,7 +77,7 @@ internal async Task OpenExportDialogAsync(string exportType, string fileMenuName
8177

8278
internal async Task OpenDisplayHotkeysAsync()
8379
{
84-
await _page.GetByRole(AriaRole.Button, new() { Name = "More" }).ClickAsync();
80+
await MenuButton.ClickAsync();
8581
await _page.GetByText("Hotkeys").ClickAsync();
8682
}
8783
}

AudioCuesheetEditor.End2EndTests/Models/DetailView.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,11 @@
1717

1818
namespace AudioCuesheetEditor.End2EndTests.Models
1919
{
20-
internal class DetailView(IPage page, bool mobile)
20+
internal class DetailView(IPage page)
2121
{
2222
internal const string BaseUrl = "http://localhost:5132/";
2323

2424
private readonly IPage _page = page;
25-
private readonly bool _isMobile = mobile;
2625

2726
internal ILocator AudiofileInput => _page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile" }).Locator("input[type=\"file\"]");
2827

@@ -115,8 +114,7 @@ internal async Task RenameAudiofileAsync(string filename)
115114

116115
internal async Task OpenRenameAudiofileDialogAsync()
117116
{
118-
int buttonIndex = _isMobile ? 2 : 3;
119-
await _page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile" }).GetByRole(AriaRole.Button).Nth(buttonIndex).ClickAsync();
117+
await _page.GetByRole(AriaRole.Group).Filter(new() { HasText = "AudiofileAudiofile" }).GetByLabel("More").ClickAsync();
120118
await _page.GetByText("Rename file").ClickAsync();
121119
}
122120
}

AudioCuesheetEditor.End2EndTests/Models/RecordView.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ internal async Task AddRecordingTrackAsync(string artist, string title)
5050
await _page.GetByRole(AriaRole.Textbox, new() { Name = "Title", Exact = true }).FillAsync(title);
5151
await _page.GetByRole(AriaRole.Textbox, new() { Name = "Title", Exact = true }).PressAsync("Tab");
5252
await _page.GetByRole(AriaRole.Button, new() { Name = "Add track" }).ClickAsync();
53-
await _page.Locator(".mud-overlay").ClickAsync();
5453
}
5554
}
5655
}

AudioCuesheetEditor.End2EndTests/Tests/Desktop/BasicTest.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class BasicTest : PlaywrightTestBase
2424
[TestMethod]
2525
public async Task Application_HasTitle_WhenBrowsingIndex()
2626
{
27-
var detailView = new DetailView(TestPage, DeviceName != null);
27+
var detailView = new DetailView(TestPage);
2828
await detailView.GotoAsync();
2929
var appBar = new AppBar(TestPage);
3030
await Expect(appBar.HomeButton).ToBeVisibleAsync();
@@ -43,7 +43,7 @@ public async Task AboutHeader_HasTitle_WhenBrowsingAbout()
4343
[TestMethod]
4444
public async Task Audiofile_ShouldBeRenamed_WhenEditingFilename()
4545
{
46-
var detailView = new DetailView(TestPage, DeviceName != null);
46+
var detailView = new DetailView(TestPage);
4747
await detailView.GotoAsync();
4848
await detailView.AudiofileInput.SetInputFilesAsync("Kalimba.mp3");
4949
await detailView.RenameAudiofileAsync("Kalimba test 123.mp3");
@@ -54,7 +54,7 @@ public async Task Audiofile_ShouldBeRenamed_WhenEditingFilename()
5454
public async Task OpenSettings_ShouldDisplaySettings_WhenSelectingSettings()
5555
{
5656
var bar = new AppBar(TestPage);
57-
var detailView = new DetailView(TestPage, DeviceName != null);
57+
var detailView = new DetailView(TestPage);
5858
await detailView.GotoAsync();
5959
await bar.OpenSettingsAsync();
6060
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Settings" })).ToBeVisibleAsync();
@@ -65,7 +65,7 @@ public async Task ChangeLanguage_ShouldSwitchLanguage_WhenGermanIsSelected()
6565
{
6666
var bar = new AppBar(TestPage);
6767
var exportDialog = new ExportDialog(TestPage);
68-
var detailView = new DetailView(TestPage, DeviceName != null);
68+
var detailView = new DetailView(TestPage);
6969
await detailView.GotoAsync();
7070
await bar.ChangeLanguageAsync("German (Germany)");
7171
await Expect(TestPage.GetByRole(AriaRole.Heading, new() { Name = "Abschnitte" })).ToBeVisibleAsync();
@@ -86,7 +86,7 @@ public async Task ChangeLanguage_ShouldSwitchLanguage_WhenGermanIsSelected()
8686
public async Task TrackTableControls_ShouldBeEnabled_WhenSelectingFirstTrackAsync()
8787
{
8888
var bar = new AppBar(TestPage);
89-
var detailView = new DetailView(TestPage, DeviceName != null);
89+
var detailView = new DetailView(TestPage);
9090
await detailView.GotoAsync();
9191
await detailView.AddTrackAsync();
9292
await detailView.AddTrackAsync();
@@ -108,7 +108,7 @@ await Expect(TestPage.GetByLabel("Track table controls")).ToMatchAriaSnapshotAsy
108108
public async Task KeyboardCommands_ShouldControlDialogs_WhenUsingEnterOrEscapeAsync()
109109
{
110110
var bar = new AppBar(TestPage);
111-
var detailView = new DetailView(TestPage, DeviceName != null);
111+
var detailView = new DetailView(TestPage);
112112
await detailView.GotoAsync();
113113
await TestPage.GetByRole(AriaRole.Dialog).WaitForAsync(new() { State = WaitForSelectorState.Detached });
114114
await bar.OpenExportDialogAsync("Cuesheet");

AudioCuesheetEditor.End2EndTests/Tests/Desktop/ExportTest.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class ExportTest : PlaywrightTestBase
2525
public async Task DownloadCuesheet_GeneratesCuesheetFile_WhenCuesheetIsValid()
2626
{
2727
var bar = new AppBar(TestPage);
28-
var detailView = new DetailView(TestPage, DeviceName != null);
28+
var detailView = new DetailView(TestPage);
2929
await detailView.GotoAsync();
3030
await detailView.AddTrackAsync();
3131
await detailView.CuesheetArtistInput.FillAsync("Cuesheet Artist 1");
@@ -54,7 +54,7 @@ TRACK 01 AUDIO
5454
public async Task DownloadProject_GeneratesProjectFile_WhenCuesheetIsValidAsync()
5555
{
5656
var bar = new AppBar(TestPage);
57-
var detailView = new DetailView(TestPage, DeviceName != null);
57+
var detailView = new DetailView(TestPage);
5858
await detailView.GotoAsync();
5959
await detailView.AddTrackAsync();
6060
await detailView.CuesheetArtistInput.FillAsync("Cuesheet Artist 1");
@@ -75,17 +75,17 @@ public async Task DownloadProject_GeneratesProjectFile_WhenCuesheetIsValidAsync(
7575
public async Task DownloadText_GeneratesTextFile_WhenCuesheetIsValidAsync()
7676
{
7777
var bar = new AppBar(TestPage);
78-
var detailView = new DetailView(TestPage, DeviceName != null);
78+
var detailView = new DetailView(TestPage);
7979
await detailView.GotoAsync();
8080
await detailView.AddTrackAsync();
8181
await detailView.CuesheetArtistInput.FillAsync("Cuesheet Artist 1");
8282
await detailView.CuesheetTitleInput.FillAsync("Cuesheet Title 1");
8383
await detailView.AudiofileInput.SetInputFilesAsync("Kalimba.mp3");
8484
await detailView.EditTrackAsync("Track Artist 1", "Track Title 1");
8585
await bar.OpenExportDialogAsync("Textfile");
86-
await TestPage.GetByRole(AriaRole.Button, new() { Name = "Next" }).ClickAsync();
86+
await TestPage.GetByRole(AriaRole.Button, new() { Name = "Next", Exact = true }).ClickAsync();
8787
var downloadTask = TestPage.WaitForDownloadAsync();
88-
await TestPage.GetByRole(AriaRole.Button, new() { Name = "Download-YouTube.txt" }).ClickAsync();
88+
await TestPage.GetByRole(AriaRole.Button, new() { Name = "Download" }).ClickAsync();
8989
var download = await downloadTask;
9090
using var stream = await download.CreateReadStreamAsync();
9191
using var reader = new StreamReader(stream);

0 commit comments

Comments
 (0)