From cc5d89a3960e85c269bdf2fec7e4bd800e09b48b Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Sat, 13 Dec 2025 08:22:02 +0300 Subject: [PATCH 01/10] test --- internal/client/params_test.go | 96 ++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 internal/client/params_test.go diff --git a/internal/client/params_test.go b/internal/client/params_test.go new file mode 100644 index 0000000..f0787dd --- /dev/null +++ b/internal/client/params_test.go @@ -0,0 +1,96 @@ +package client + +import ( + "io" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestNewMockParams_CreatesValidInstance(t *testing.T) { + params := NewMockParams() + require.NotNil(t, params, "params must not be nil") +} + +func TestNewMockParams_SetsMockProvider(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "mock", params.Provider, "provider must be mock") +} + +func TestNewMockParams_SetsDefaultToken(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "ABC", params.Token, "token must be ABC") +} + +func TestNewMockParams_EnablesMockProject(t *testing.T) { + params := NewMockParams() + assert.True(t, params.MockProject, "mock project must be enabled") +} + +func TestNewMockParams_DisablesDebug(t *testing.T) { + params := NewMockParams() + assert.False(t, params.Debug, "debug must be disabled") +} + +func TestNewMockParams_DisablesStats(t *testing.T) { + params := NewMockParams() + assert.False(t, params.Stats, "stats must be disabled") +} + +func TestNewMockParams_SetsStdFormat(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "std", params.Format, "format must be std") +} + +func TestNewMockParams_SetsDefaultMaxSize(t *testing.T) { + params := NewMockParams() + assert.Equal(t, 200, params.MaxSize, "max size must be 200") +} + +func TestNewMockParams_SetsDiscardLog(t *testing.T) { + params := NewMockParams() + assert.Equal(t, io.Discard, params.Log, "log must be io.Discard") +} + +func TestNewMockParams_SetsDefaultChecks(t *testing.T) { + params := NewMockParams() + require.Equal(t, 1, len(params.Checks), "must have one check") + assert.Equal(t, "mvn clean test", params.Checks[0], "check must be mvn clean test") +} + +func TestNewMockParams_DisablesColorless(t *testing.T) { + params := NewMockParams() + assert.False(t, params.Colorless, "colorless must be disabled") +} + +func TestNewMockParams_SetsDefaultModel(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "gpt-3.5-turbo", params.Model, "model must be gpt-3.5-turbo") +} + +func TestNewMockParams_SetsDefaultAttempts(t *testing.T) { + params := NewMockParams() + assert.Equal(t, 3, params.Attempts, "attempts must be 3") +} + +func TestMask_ReturnsEmptyForEmptyToken(t *testing.T) { + result := mask("") + assert.Equal(t, "", result, "mask of empty string must be empty") +} + +func TestMask_MasksShortToken(t *testing.T) { + result := mask("AB") + assert.Equal(t, "AB", result, "short token must show visible part") +} + +func TestMask_MasksLongToken(t *testing.T) { + result := mask("ABCDEFGH") + assert.Equal(t, "ABC*****", result, "long token must be masked") +} + +func TestMask_ShowsThreeCharacters(t *testing.T) { + result := mask("secrettoken12345") + assert.NotEmpty(t, result, "masked token must not be empty") + assert.Equal(t, "sec*************", result, "token must show first three characters") +} From 64d38ddcedc654c5f5f70eeb90a3b30ad6bebeaf Mon Sep 17 00:00:00 2001 From: Yegor Bugayenko Date: Sat, 13 Dec 2025 08:25:37 +0300 Subject: [PATCH 02/10] Update internal/client/params_test.go Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- internal/client/params_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/client/params_test.go b/internal/client/params_test.go index f0787dd..e8edbd4 100644 --- a/internal/client/params_test.go +++ b/internal/client/params_test.go @@ -81,7 +81,7 @@ func TestMask_ReturnsEmptyForEmptyToken(t *testing.T) { func TestMask_MasksShortToken(t *testing.T) { result := mask("AB") - assert.Equal(t, "AB", result, "short token must show visible part") + assert.Equal(t, "AB", result, "token shorter than 3 characters must remain fully visible") } func TestMask_MasksLongToken(t *testing.T) { From f9acb0d8eeadd3eb707dd3c15d3821882c54016a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 13 Dec 2025 05:26:10 +0000 Subject: [PATCH 03/10] Initial plan From 0e20e9d9442bc5bd123d6e04889eaf200df0c16f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 13 Dec 2025 05:26:19 +0000 Subject: [PATCH 04/10] Initial plan From 2afe13d39db49640d1041de7924b20ccb13c4abd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 13 Dec 2025 05:28:42 +0000 Subject: [PATCH 05/10] Add edge case tests for mask function Co-authored-by: yegor256 <526301+yegor256@users.noreply.github.com> --- internal/client/params_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/internal/client/params_test.go b/internal/client/params_test.go index e8edbd4..7f60e5d 100644 --- a/internal/client/params_test.go +++ b/internal/client/params_test.go @@ -79,11 +79,26 @@ func TestMask_ReturnsEmptyForEmptyToken(t *testing.T) { assert.Equal(t, "", result, "mask of empty string must be empty") } +func TestMask_MasksSingleCharacterToken(t *testing.T) { + result := mask("A") + assert.Equal(t, "A", result, "single character token must remain fully visible") +} + func TestMask_MasksShortToken(t *testing.T) { result := mask("AB") assert.Equal(t, "AB", result, "token shorter than 3 characters must remain fully visible") } +func TestMask_MasksThreeCharacterToken(t *testing.T) { + result := mask("ABC") + assert.Equal(t, "ABC", result, "three character token must remain fully visible") +} + +func TestMask_MasksFourCharacterToken(t *testing.T) { + result := mask("ABCD") + assert.Equal(t, "ABC*", result, "four character token must show first three characters and mask one") +} + func TestMask_MasksLongToken(t *testing.T) { result := mask("ABCDEFGH") assert.Equal(t, "ABC*****", result, "long token must be masked") From 48601be22d4967800a674b60b1b4d190d761fc42 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 13 Dec 2025 05:28:46 +0000 Subject: [PATCH 06/10] Add missing test coverage for NewMockParams fields Co-authored-by: yegor256 <526301+yegor256@users.noreply.github.com> --- internal/client/params_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/internal/client/params_test.go b/internal/client/params_test.go index e8edbd4..81527da 100644 --- a/internal/client/params_test.go +++ b/internal/client/params_test.go @@ -74,6 +74,26 @@ func TestNewMockParams_SetsDefaultAttempts(t *testing.T) { assert.Equal(t, 3, params.Attempts, "attempts must be 3") } +func TestNewMockParams_SetsEmptyPlaybook(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "", params.Playbook, "playbook must be empty") +} + +func TestNewMockParams_SetsStatsOutput(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "stats", params.Soutput, "soutput must be stats") +} + +func TestNewMockParams_SetsEmptyInput(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "", params.Input, "input must be empty") +} + +func TestNewMockParams_SetsEmptyOutput(t *testing.T) { + params := NewMockParams() + assert.Equal(t, "", params.Output, "output must be empty") +} + func TestMask_ReturnsEmptyForEmptyToken(t *testing.T) { result := mask("") assert.Equal(t, "", result, "mask of empty string must be empty") From 0859fd21c56c9d3af1a87244c9e2e2650b053662 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:15:25 +0000 Subject: [PATCH 07/10] Initial plan From 10ff813f9dad6d758274f29ce5f101f81709663f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:16:47 +0000 Subject: [PATCH 08/10] Initial plan From 85aef9fd814a1f7f69b62119b2157e353611592f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:19:22 +0000 Subject: [PATCH 09/10] Remove redundant variable in TestNewMockParams_DisablesStats Co-authored-by: yegor256 <526301+yegor256@users.noreply.github.com> --- internal/client/params_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/client/params_test.go b/internal/client/params_test.go index e919ff9..a68ca38 100644 --- a/internal/client/params_test.go +++ b/internal/client/params_test.go @@ -34,8 +34,7 @@ func TestNewMockParams_DisablesDebug(t *testing.T) { } func TestNewMockParams_DisablesStats(t *testing.T) { - params := NewMockParams() - assert.False(t, params.Stats, "stats must be disabled") + assert.False(t, NewMockParams().Stats, "stats must be disabled") } func TestNewMockParams_SetsStdFormat(t *testing.T) { From 1b914c8ec1e85632318f000df02259bcd650a109 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 15 Dec 2025 09:20:04 +0000 Subject: [PATCH 10/10] Remove TestMask tests from params_test.go Co-authored-by: yegor256 <526301+yegor256@users.noreply.github.com> --- internal/client/params_test.go | 36 ---------------------------------- 1 file changed, 36 deletions(-) diff --git a/internal/client/params_test.go b/internal/client/params_test.go index e919ff9..259a830 100644 --- a/internal/client/params_test.go +++ b/internal/client/params_test.go @@ -93,39 +93,3 @@ func TestNewMockParams_SetsEmptyOutput(t *testing.T) { params := NewMockParams() assert.Equal(t, "", params.Output, "output must be empty") } - -func TestMask_ReturnsEmptyForEmptyToken(t *testing.T) { - result := mask("") - assert.Equal(t, "", result, "mask of empty string must be empty") -} - -func TestMask_MasksSingleCharacterToken(t *testing.T) { - result := mask("A") - assert.Equal(t, "A", result, "single character token must remain fully visible") -} - -func TestMask_MasksShortToken(t *testing.T) { - result := mask("AB") - assert.Equal(t, "AB", result, "token shorter than 3 characters must remain fully visible") -} - -func TestMask_MasksThreeCharacterToken(t *testing.T) { - result := mask("ABC") - assert.Equal(t, "ABC", result, "three character token must remain fully visible") -} - -func TestMask_MasksFourCharacterToken(t *testing.T) { - result := mask("ABCD") - assert.Equal(t, "ABC*", result, "four character token must show first three characters and mask one") -} - -func TestMask_MasksLongToken(t *testing.T) { - result := mask("ABCDEFGH") - assert.Equal(t, "ABC*****", result, "long token must be masked") -} - -func TestMask_ShowsThreeCharacters(t *testing.T) { - result := mask("secrettoken12345") - assert.NotEmpty(t, result, "masked token must not be empty") - assert.Equal(t, "sec*************", result, "token must show first three characters") -}