@@ -19,53 +19,56 @@ package command
1919import (
2020 "context"
2121 "errors"
22+ "sync"
2223 "testing"
24+ "time"
2325
2426 "github.com/stretchr/testify/assert"
2527
28+ "github.com/snyk/snyk-ls/infrastructure/code"
2629 "github.com/snyk/snyk-ls/internal/types"
2730)
2831
2932type fakeCodeHttpClient struct {
3033 shouldError bool
31- feedbackSubmitted bool
34+ feedbackSubmitted string
35+ fixId string
36+ mu sync.Mutex
3237}
3338
34- func (c * fakeCodeHttpClient ) SubmitAutofixFeedback (ctx context.Context , fixId string , positive bool ) error {
39+ func (c * fakeCodeHttpClient ) SubmitAutofixFeedback (ctx context.Context , fixId string , feedback string ) error {
40+ c .mu .Lock ()
41+ c .feedbackSubmitted = feedback
42+ c .fixId = fixId
43+ c .mu .Unlock ()
44+
3545 if ! c .shouldError {
36- c .feedbackSubmitted = true
3746 return nil
3847 }
3948
4049 return errors .New ("api call failed" )
4150}
4251
43- func Test_codeFixFeedback_SubmittedSuccessfully (t * testing.T ) {
44- apiClient := fakeCodeHttpClient {}
45- codeFixFeedbackCmd := codeFixFeedback {
46- command : types.CommandData {
47- Arguments : []any {"fixId" , true },
48- },
49- apiClient : & apiClient ,
50- }
52+ func FeedbackSubmitted (c * fakeCodeHttpClient ) string {
53+ c .mu .Lock ()
54+ defer c .mu .Unlock ()
5155
52- _ , err := codeFixFeedbackCmd .Execute (context .Background ())
53- assert .NoError (t , err )
54- assert .True (t , apiClient .feedbackSubmitted )
56+ return c .feedbackSubmitted
5557}
5658
57- func Test_codeFixFeedback_SubmissionFailed (t * testing.T ) {
58- apiClient := fakeCodeHttpClient {
59- shouldError : true ,
60- }
59+ func Test_codeFixFeedback_SubmittedSuccessfully (t * testing.T ) {
60+ apiClient := fakeCodeHttpClient {}
6161 codeFixFeedbackCmd := codeFixFeedback {
6262 command : types.CommandData {
63- Arguments : []any {"fixId" , true },
63+ Arguments : []any {"fixId" , code . FixPositiveFeedback },
6464 },
6565 apiClient : & apiClient ,
6666 }
6767
6868 _ , err := codeFixFeedbackCmd .Execute (context .Background ())
69- assert .Error (t , err )
70- assert .False (t , apiClient .feedbackSubmitted )
69+
70+ assert .NoError (t , err )
71+ assert .Eventually (t , func () bool {
72+ return FeedbackSubmitted (& apiClient ) != ""
73+ }, 2 * time .Second , time .Millisecond )
7174}
0 commit comments