Skip to content

Commit 9c234e2

Browse files
fix(#115): Handle token retrieval errors in RefraxClient refactor method (#118)
1 parent 9eaf13c commit 9c234e2

File tree

3 files changed

+28
-8
lines changed

3 files changed

+28
-8
lines changed

internal/client/refrax_client.go

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,11 @@ func (c *RefraxClient) Refactor(proj domain.Project) (domain.Project, error) {
7272
"You cannot suggest removing JavaDoc comments",
7373
},
7474
}
75-
criticBrain, err := mind(c.params, &criticSystemPrompt, criticStats)
75+
token, err := token(c.params)
76+
if err != nil {
77+
return nil, fmt.Errorf("failed to find token: %w", err)
78+
}
79+
criticBrain, err := mind(c.params, token, &criticSystemPrompt, criticStats)
7680
if err != nil {
7781
return nil, fmt.Errorf("failed to create AI instance: %w", err)
7882
}
@@ -98,7 +102,7 @@ func (c *RefraxClient) Refactor(proj domain.Project) (domain.Project, error) {
98102
"You cannot remove JavaDoc comments",
99103
},
100104
}
101-
fixerBrain, err := mind(c.params, &fixerSystemPrompt, fixerStats)
105+
fixerBrain, err := mind(c.params, token, &fixerSystemPrompt, fixerStats)
102106
if err != nil {
103107
return nil, fmt.Errorf("failed to create AI instance: %w", err)
104108
}
@@ -123,7 +127,7 @@ func (c *RefraxClient) Refactor(proj domain.Project) (domain.Project, error) {
123127
"You cannot suggest adding another dependencies",
124128
},
125129
}
126-
reviewerBrain, err := mind(c.params, &reviewerSystemPrompt, reviewerStats)
130+
reviewerBrain, err := mind(c.params, token, &reviewerSystemPrompt, reviewerStats)
127131
if err != nil {
128132
return nil, fmt.Errorf("failed to create AI instance for reviewer: %w", err)
129133
}
@@ -146,7 +150,7 @@ func (c *RefraxClient) Refactor(proj domain.Project) (domain.Project, error) {
146150
"You cannot change suggestions",
147151
},
148152
}
149-
facilitatorBrain, err := mind(c.params, &facilitatorSystemPrompt, facilitatorStats)
153+
facilitatorBrain, err := mind(c.params, token, &facilitatorSystemPrompt, facilitatorStats)
150154
if err != nil {
151155
return nil, fmt.Errorf("failed to create AI instance: %w", err)
152156
}
@@ -298,15 +302,15 @@ func printStats(p Params, s ...*stats.Stats) error {
298302
return nil
299303
}
300304

301-
func mind(p Params, system *prompts.System, s *stats.Stats) (brain.Brain, error) {
302-
ai, err := brain.New(p.Provider, token(p), system.String(), p.Playbook)
305+
func mind(p Params, token string, system *prompts.System, s *stats.Stats) (brain.Brain, error) {
306+
ai, err := brain.New(p.Provider, token, system.String(), p.Playbook)
303307
if p.Stats {
304308
ai = brain.NewMetricBrain(ai, s)
305309
}
306310
return ai, err
307311
}
308312

309-
func token(p Params) string {
313+
func token(p Params) (string, error) {
310314
log.Debug("Refactoring provider: %s", p.Provider)
311315
log.Debug("Project path to refactor: %s", p.Input)
312316
var token string
@@ -316,8 +320,11 @@ func token(p Params) string {
316320
log.Info("Token not provided, trying to find token in .env file")
317321
token = env.Token(".env", p.Provider)
318322
}
323+
if token == "" {
324+
return "", fmt.Errorf("token not found, please provide it via --token flag or in .env file")
325+
}
319326
log.Debug("Using provided token: %s...", mask(token))
320-
return token
327+
return token, nil
321328
}
322329

323330
func proj(params Params) (domain.Project, error) {

internal/client/refrax_client_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,18 @@ import (
88

99
"github.com/cqfn/refrax/internal/domain"
1010
"github.com/stretchr/testify/assert"
11+
"github.com/stretchr/testify/require"
1112
)
1213

14+
func TestTokenNotFound(t *testing.T) {
15+
params := NewMockParams()
16+
params.Token = ""
17+
client := NewRefraxClient(params)
18+
_, err := client.Refactor(domain.NewMock())
19+
require.Error(t, err)
20+
require.Equal(t, "failed to find token: token not found, please provide it via --token flag or in .env file", err.Error())
21+
}
22+
1323
func TestRefraxClient_Creates_Successfully(t *testing.T) {
1424
client := NewRefraxClient(NewMockParams())
1525
assert.NotNil(t, client, "Refrax client should not be nil")

internal/critic/server.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ func (c *Critic) thinkLong(m *protocol.Message) (*protocol.Message, error) {
9393
return nil, fmt.Errorf("failed to parse task from message: %w", err)
9494
}
9595
artifacts, err := c.agent.Review(tsk)
96+
if err != nil {
97+
return nil, fmt.Errorf("failed to review the task: %w", err)
98+
}
9699
return artifacts.Marshal().Message, err
97100
}
98101

0 commit comments

Comments
 (0)