Skip to content

Commit 2cac10c

Browse files
add check for linked tracks to test
1 parent 8d9a6f3 commit 2cac10c

4 files changed

Lines changed: 55 additions & 0 deletions

File tree

AudioCuesheetEditor.End2EndTests/Models/DetailView.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ internal async Task SelectTracksAsync(IEnumerable<int> trackTablePositions, Bool
8585
}
8686
}
8787

88+
internal async Task EditSelectedTracksModalAsync()
89+
{
90+
await _page.GetByRole(AriaRole.Button, new() { Name = "Edit selected tracks" }).ClickAsync();
91+
}
92+
8893
internal async Task EditTracksModalAsync(string artist, string title, string end, IEnumerable<string> flagsToSelect)
8994
{
9095
await _page.GetByRole(AriaRole.Button, new() { Name = "Edit selected tracks" }).ClickAsync();
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//This file is part of AudioCuesheetEditor.
2+
3+
//AudioCuesheetEditor is free software: you can redistribute it and/or modify
4+
//it under the terms of the GNU General Public License as published by
5+
//the Free Software Foundation, either version 3 of the License, or
6+
//(at your option) any later version.
7+
8+
//AudioCuesheetEditor is distributed in the hope that it will be useful,
9+
//but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
//GNU General Public License for more details.
12+
13+
//You should have received a copy of the GNU General Public License
14+
//along with Foobar. If not, see
15+
//<http: //www.gnu.org/licenses />.
16+
using Microsoft.Playwright;
17+
using System.Text.RegularExpressions;
18+
19+
namespace AudioCuesheetEditor.End2EndTests.Models
20+
{
21+
internal partial class ViewModes(IPage page, bool mobile)
22+
{
23+
private readonly IPage _page = page;
24+
private readonly bool _isMobile = mobile;
25+
26+
internal async Task SwitchView(string viewMode)
27+
{
28+
if (_isMobile)
29+
{
30+
await _page.GetByRole(AriaRole.Button).Filter(new() { HasTextRegex = ViewModeForward() }).Nth(4).ClickAsync();
31+
}
32+
await _page.GetByText(viewMode).ClickAsync();
33+
}
34+
35+
[GeneratedRegex("^$")]
36+
internal static partial Regex ViewModeForward();
37+
}
38+
}

AudioCuesheetEditor.End2EndTests/Tests/Desktop/RecordTest.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ public class RecordTest : PlaywrightTestBase
2525
public async Task Record_ShouldRecordTracks_WhenTracksAdded()
2626
{
2727
var recordView = new RecordView(TestPage);
28+
var viewModes = new ViewModes(TestPage, DeviceName != null);
29+
var detailView = new DetailView(TestPage, DeviceName != null);
2830
await recordView.GotoAsync();
2931
await recordView.StartRecordingAsync();
3032
await recordView.AddRecordingTrackAsync("Test Track 1 Artist", "Test Track 1 Title");
@@ -34,6 +36,10 @@ public async Task Record_ShouldRecordTracks_WhenTracksAdded()
3436
await Expect(TestPage.GetByRole(AriaRole.Cell, new() { Name = "Test Track 1 Title Clear" })).ToBeVisibleAsync();
3537
await Expect(TestPage.GetByRole(AriaRole.Cell, new() { Name = "Test Track 2 Artist Clear" })).ToBeVisibleAsync();
3638
await Expect(TestPage.GetByRole(AriaRole.Cell, new() { Name = "Test Track 2 Title Clear" })).ToBeVisibleAsync();
39+
await viewModes.SwitchView("Detail view");
40+
await detailView.SelectTracksAsync([1]);
41+
await detailView.EditSelectedTracksModalAsync();
42+
await Expect(TestPage.GetByRole(AriaRole.Checkbox, new() { Name = "Link to previous track" })).ToBeCheckedAsync();
3743
}
3844
}
3945
}

AudioCuesheetEditor.End2EndTests/Tests/Smartphone/RecordTestSmartphone.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public class RecordTestSmartphone : PlaywrightTestBase
2626
public async Task Record_ShouldRecordTracks_WhenTracksAdded()
2727
{
2828
var recordView = new RecordView(TestPage);
29+
var viewModes = new ViewModes(TestPage, DeviceName != null);
30+
var detailView = new DetailView(TestPage, DeviceName != null);
2931
await recordView.GotoAsync();
3032
await recordView.StartRecordingAsync();
3133
await recordView.AddRecordingTrackAsync("Test Track 1 Artist", "Test Track 1 Title");
@@ -35,6 +37,10 @@ public async Task Record_ShouldRecordTracks_WhenTracksAdded()
3537
await Expect(TestPage.GetByRole(AriaRole.Cell, new() { Name = "Test Track 1 Title Clear" })).ToBeVisibleAsync();
3638
await Expect(TestPage.GetByRole(AriaRole.Cell, new() { Name = "Test Track 2 Artist Clear" })).ToBeVisibleAsync();
3739
await Expect(TestPage.GetByRole(AriaRole.Cell, new() { Name = "Test Track 2 Title Clear" })).ToBeVisibleAsync();
40+
await viewModes.SwitchView("Detail view");
41+
await detailView.SelectTracksAsync([1]);
42+
await detailView.EditSelectedTracksModalAsync();
43+
await Expect(TestPage.GetByRole(AriaRole.Checkbox, new() { Name = "Link to previous track" })).ToBeCheckedAsync();
3844
}
3945
}
4046
}

0 commit comments

Comments
 (0)