diff --git a/TUnit.Playwright/BrowserFixture.cs b/TUnit.Playwright/BrowserFixture.cs index 50bc7d321e..f22594f610 100644 --- a/TUnit.Playwright/BrowserFixture.cs +++ b/TUnit.Playwright/BrowserFixture.cs @@ -18,7 +18,10 @@ public class BrowserFixture : IAsyncInitializer, IAsyncDisposable public virtual string BrowserName => Microsoft.Playwright.BrowserType.Chromium; - protected virtual BrowserTypeLaunchOptions GetLaunchOptions() => new(); + protected virtual BrowserTypeLaunchOptions GetLaunchOptions() => new() + { + Headless = TUnitPlaywrightSettings.Default.DefaultHeadless, + }; public virtual async Task InitializeAsync() { diff --git a/TUnit.Playwright/BrowserTest.cs b/TUnit.Playwright/BrowserTest.cs index b93769d498..f3696d83ca 100644 --- a/TUnit.Playwright/BrowserTest.cs +++ b/TUnit.Playwright/BrowserTest.cs @@ -5,7 +5,10 @@ namespace TUnit.Playwright; public class BrowserTest : PlaywrightTest { - public BrowserTest() : this(new BrowserTypeLaunchOptions()) + public BrowserTest() : this(new BrowserTypeLaunchOptions + { + Headless = TUnitPlaywrightSettings.Default.DefaultHeadless, + }) { } diff --git a/TUnit.Playwright/ContextFixture.cs b/TUnit.Playwright/ContextFixture.cs index 545eae9449..4db7b6e8fe 100644 --- a/TUnit.Playwright/ContextFixture.cs +++ b/TUnit.Playwright/ContextFixture.cs @@ -24,7 +24,11 @@ public class ContextFixture : IAsyncInitializer, IAsyncDisposable /// (new BrowserNewContextOptions()). /// protected virtual BrowserNewContextOptions GetContextOptions() => - new() { Locale = "en-US", ColorScheme = ColorScheme.Light }; + new() + { + Locale = "en-US", ColorScheme = ColorScheme.Light, + IgnoreHTTPSErrors = TUnitPlaywrightSettings.Default.DefaultIgnoreHttpsErrors, + }; /// /// When true, seeds the context with W3C trace propagation headers from diff --git a/TUnit.Playwright/ContextTest.cs b/TUnit.Playwright/ContextTest.cs index b13214b840..989dd41b7f 100644 --- a/TUnit.Playwright/ContextTest.cs +++ b/TUnit.Playwright/ContextTest.cs @@ -17,7 +17,11 @@ public ContextTest(BrowserTypeLaunchOptions options) : base(options) public virtual BrowserNewContextOptions ContextOptions(TestContext testContext) { - return new() { Locale = "en-US", ColorScheme = ColorScheme.Light, }; + return new() + { + Locale = "en-US", ColorScheme = ColorScheme.Light, + IgnoreHTTPSErrors = TUnitPlaywrightSettings.Default.DefaultIgnoreHttpsErrors, + }; } [Before(HookType.Test, "", 0)] diff --git a/TUnit.Playwright/PlaywrightSettings.cs b/TUnit.Playwright/PlaywrightSettings.cs new file mode 100644 index 0000000000..5924bb449e --- /dev/null +++ b/TUnit.Playwright/PlaywrightSettings.cs @@ -0,0 +1,23 @@ +using TUnit.Core.Settings; + +namespace TUnit.Playwright; + +public static class PlaywrightSettingsExtensions +{ + extension(TUnitSettings settings) + { + public TUnitPlaywrightSettings PlaywrightSettings => TUnitPlaywrightSettings.Default; + } +} + +public class TUnitPlaywrightSettings +{ + internal static readonly TUnitPlaywrightSettings Default = new(); + + internal TUnitPlaywrightSettings() + { + } + + public bool? DefaultHeadless { get; set; } = null; + public bool? DefaultIgnoreHttpsErrors { get; set; } = null; +} diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet10_0.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet10_0.verified.txt index 9736bef78e..d0839dfe67 100644 --- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet10_0.verified.txt +++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet10_0.verified.txt @@ -82,6 +82,13 @@ namespace public .IPageAssertions Expect(.IPage page) { } public virtual . InitializeAsync() { } } + public static class PlaywrightSettingsExtensions + { + extension(. settings) + { + public .TUnitPlaywrightSettings PlaywrightSettings { get; } + } + } public class PlaywrightSkipAttribute : .SkipAttribute { public PlaywrightSkipAttribute(params .[] combinations) { } @@ -113,6 +120,11 @@ namespace public static . PlaywrightSetup() { } public static void SetDefaultExpectTimeout(float timeout) { } } + public class TUnitPlaywrightSettings + { + public bool? DefaultHeadless { get; set; } + public bool? DefaultIgnoreHttpsErrors { get; set; } + } public class WorkerAwareTest : ., . { public WorkerAwareTest() { } diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt index 091f3bb52f..5acda701c7 100644 --- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt +++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet8_0.verified.txt @@ -82,6 +82,13 @@ namespace public .IPageAssertions Expect(.IPage page) { } public virtual . InitializeAsync() { } } + public static class PlaywrightSettingsExtensions + { + extension(. settings) + { + public .TUnitPlaywrightSettings PlaywrightSettings { get; } + } + } public class PlaywrightSkipAttribute : .SkipAttribute { public PlaywrightSkipAttribute(params .[] combinations) { } @@ -113,6 +120,11 @@ namespace public static . PlaywrightSetup() { } public static void SetDefaultExpectTimeout(float timeout) { } } + public class TUnitPlaywrightSettings + { + public bool? DefaultHeadless { get; set; } + public bool? DefaultIgnoreHttpsErrors { get; set; } + } public class WorkerAwareTest : ., . { public WorkerAwareTest() { } diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt index a8e94774c0..d24766fc44 100644 --- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt +++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.DotNet9_0.verified.txt @@ -82,6 +82,13 @@ namespace public .IPageAssertions Expect(.IPage page) { } public virtual . InitializeAsync() { } } + public static class PlaywrightSettingsExtensions + { + extension(. settings) + { + public .TUnitPlaywrightSettings PlaywrightSettings { get; } + } + } public class PlaywrightSkipAttribute : .SkipAttribute { public PlaywrightSkipAttribute(params .[] combinations) { } @@ -113,6 +120,11 @@ namespace public static . PlaywrightSetup() { } public static void SetDefaultExpectTimeout(float timeout) { } } + public class TUnitPlaywrightSettings + { + public bool? DefaultHeadless { get; set; } + public bool? DefaultIgnoreHttpsErrors { get; set; } + } public class WorkerAwareTest : ., . { public WorkerAwareTest() { } diff --git a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.Net4_7.verified.txt b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.Net4_7.verified.txt index 12880eb451..058d1b3b65 100644 --- a/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.Net4_7.verified.txt +++ b/TUnit.PublicAPI/Tests.Playwright_Library_Has_No_API_Changes.Net4_7.verified.txt @@ -82,6 +82,13 @@ namespace public .IPageAssertions Expect(.IPage page) { } public virtual . InitializeAsync() { } } + public static class PlaywrightSettingsExtensions + { + extension(. settings) + { + public .TUnitPlaywrightSettings PlaywrightSettings { get; } + } + } public class PlaywrightSkipAttribute : .SkipAttribute { public PlaywrightSkipAttribute(params .[] combinations) { } @@ -113,6 +120,11 @@ namespace public static . PlaywrightSetup() { } public static void SetDefaultExpectTimeout(float timeout) { } } + public class TUnitPlaywrightSettings + { + public bool? DefaultHeadless { get; set; } + public bool? DefaultIgnoreHttpsErrors { get; set; } + } public class WorkerAwareTest : ., . { public WorkerAwareTest() { }