From 040ece840c848aafdb30b087da69b6f61dfa4038 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Mon, 21 Jul 2025 14:33:00 +0100 Subject: [PATCH] allow skip group tests enable replay buffer in test setup() create Desktop Audio input if it doesn't exist. --- group_test.go | 15 +++++++++++++++ input_test.go | 20 ++++++++------------ main_test.go | 29 +++++++++++++++++++++++++++++ replaybuffer_test.go | 13 +++++++++++++ 4 files changed, 65 insertions(+), 12 deletions(-) diff --git a/group_test.go b/group_test.go index f44a094..40cfb01 100644 --- a/group_test.go +++ b/group_test.go @@ -2,11 +2,20 @@ package main import ( "bytes" + "os" "strings" "testing" ) +func skipIfSkipGroupTests(t *testing.T) { + if os.Getenv("GOBS_TEST_SKIP_GROUP_TESTS") != "" { + t.Skip("Skipping group tests due to GOBS_TEST_SKIP_GROUP_TESTS environment variable") + } +} + func TestGroupList(t *testing.T) { + skipIfSkipGroupTests(t) + client, disconnect := getClient(t) defer disconnect() @@ -26,6 +35,8 @@ func TestGroupList(t *testing.T) { } func TestGroupShow(t *testing.T) { + skipIfSkipGroupTests(t) + client, disconnect := getClient(t) defer disconnect() @@ -46,6 +57,8 @@ func TestGroupShow(t *testing.T) { } func TestGroupToggle(t *testing.T) { + skipIfSkipGroupTests(t) + client, disconnect := getClient(t) defer disconnect() @@ -87,6 +100,8 @@ func TestGroupToggle(t *testing.T) { } func TestGroupStatus(t *testing.T) { + skipIfSkipGroupTests(t) + client, disconnect := getClient(t) defer disconnect() diff --git a/input_test.go b/input_test.go index 4d1d967..752aef0 100644 --- a/input_test.go +++ b/input_test.go @@ -22,9 +22,8 @@ func TestInputList(t *testing.T) { expectedInputs := []string{ "Desktop Audio", "Mic/Aux", - "Colour Source", - "Colour Source 2", - "Colour Source 3", + "gobs-test-input", + "gobs-test-input-2", } output := out.String() for _, input := range expectedInputs { @@ -52,9 +51,8 @@ func TestInputListFilterInput(t *testing.T) { } expectedFilteredOut := []string{ "Desktop Audio", - "Colour Source", - "Colour Source 2", - "Colour Source 3", + "gobs-test-input", + "gobs-test-input-2", } for _, input := range expectedInputs { if !strings.Contains(out.String(), input) { @@ -86,9 +84,8 @@ func TestInputListFilterOutput(t *testing.T) { } expectedFilteredOut := []string{ "Mic/Aux", - "Colour Source", - "Colour Source 2", - "Colour Source 3", + "gobs-test-input", + "gobs-test-input-2", } for _, input := range expectedInputs { if !strings.Contains(out.String(), input) { @@ -116,9 +113,8 @@ func TestInputListFilterColour(t *testing.T) { } expectedInputs := []string{ - "Colour Source", - "Colour Source 2", - "Colour Source 3", + "gobs-test-input", + "gobs-test-input-2", } for _, input := range expectedInputs { if !strings.Contains(out.String(), input) { diff --git a/main_test.go b/main_test.go index cdb7540..31d60f3 100644 --- a/main_test.go +++ b/main_test.go @@ -3,6 +3,7 @@ package main import ( "os" "testing" + "time" "github.com/andreykaipov/goobs" "github.com/andreykaipov/goobs/api/requests/config" @@ -55,6 +56,22 @@ func TestMain(m *testing.M) { } func setup(client *goobs.Client) { + client.Config.CreateProfile(config.NewCreateProfileParams(). + WithProfileName("gobs-test-profile")) + time.Sleep(2 * time.Second) // wait for profile creation to propagate + client.Config.SetProfileParameter(config.NewSetProfileParameterParams(). + WithParameterCategory("SimpleOutput"). + WithParameterName("RecRB"). + WithParameterValue("true")) + client.Config.SetProfileParameter(config.NewSetProfileParameterParams(). + WithParameterCategory("AdvOut"). + WithParameterName("RecRB"). + WithParameterValue("true")) + client.Config.SetCurrentProfile(config.NewSetCurrentProfileParams(). + WithProfileName("Untitled")) + client.Config.SetCurrentProfile(config.NewSetCurrentProfileParams(). + WithProfileName("gobs-test-profile")) + client.Config.SetStreamServiceSettings(config.NewSetStreamServiceSettingsParams(). WithStreamServiceType("rtmp_common"). WithStreamServiceSettings(&typedefs.StreamServiceSettings{ @@ -90,6 +107,15 @@ func setup(client *goobs.Client) { }). WithSceneItemEnabled(true)) + // ensure Desktop Audio input is created + client.Inputs.CreateInput(inputs.NewCreateInputParams(). + WithSceneName("gobs-test"). + WithInputName("Desktop Audio"). + WithInputKind("wasapi_output_capture"). + WithInputSettings(map[string]any{ + "device_id": "default", + })) + // Create source filter on an audio input client.Filters.CreateSourceFilter(filters.NewCreateSourceFilterParams(). WithSourceName("Mic/Aux"). @@ -115,6 +141,9 @@ func setup(client *goobs.Client) { } func teardown(client *goobs.Client) { + client.Config.RemoveProfile(config.NewRemoveProfileParams(). + WithProfileName("gobs-test-profile")) + client.Filters.RemoveSourceFilter(filters.NewRemoveSourceFilterParams(). WithSourceName("Mic/Aux"). WithFilterName("test_filter")) diff --git a/replaybuffer_test.go b/replaybuffer_test.go index de112ad..2e0a478 100644 --- a/replaybuffer_test.go +++ b/replaybuffer_test.go @@ -2,11 +2,20 @@ package main import ( "bytes" + "os" "strings" "testing" ) +func skipIfSkipReplayBufferTests(t *testing.T) { + if os.Getenv("GOBS_TEST_SKIP_REPLAYBUFFER_TESTS") != "" { + t.Skip("Skipping replay buffer tests due to GOBS_TEST_SKIP_REPLAYBUFFER_TESTS environment variable") + } +} + func TestReplayBufferStart(t *testing.T) { + skipIfSkipReplayBufferTests(t) + client, disconnect := getClient(t) defer disconnect() @@ -24,6 +33,8 @@ func TestReplayBufferStart(t *testing.T) { } func TestReplayBufferStop(t *testing.T) { + skipIfSkipReplayBufferTests(t) + client, disconnect := getClient(t) defer disconnect() @@ -41,6 +52,8 @@ func TestReplayBufferStop(t *testing.T) { } func TestReplayBufferToggle(t *testing.T) { + skipIfSkipReplayBufferTests(t) + client, disconnect := getClient(t) defer disconnect()