@@ -2,15 +2,12 @@ package logout
22
33import (
44 "errors"
5- "sync"
65 "testing"
76
87 "github.com/deepsourcelabs/cli/config"
98 "github.com/stretchr/testify/assert"
109)
1110
12- var mockMu sync.Mutex
13-
1411func TestNewCmdLogout (t * testing.T ) {
1512 t .Run ("creates command with correct properties" , func (t * testing.T ) {
1613 cmd := NewCmdLogout ()
@@ -21,91 +18,55 @@ func TestNewCmdLogout(t *testing.T) {
2118
2219func TestLogoutOptions_Run (t * testing.T ) {
2320 t .Run ("error reading config" , func (t * testing.T ) {
24- mockMu .Lock ()
25- originalGetConfig := getConfigFn
26- getConfigFn = func () (* config.CLIConfig , error ) {
27- return nil , errors .New ("config read error" )
21+ opts := & LogoutOptions {
22+ GetConfigFn : func () (* config.CLIConfig , error ) {
23+ return nil , errors .New ("config read error" )
24+ },
25+ ConfirmFromUserFn : func (msg , helpText string ) (bool , error ) {
26+ return false , nil
27+ },
2828 }
29- mockMu .Unlock ()
30-
31- defer func () {
32- mockMu .Lock ()
33- getConfigFn = originalGetConfig
34- mockMu .Unlock ()
35- }()
36-
37- opts := LogoutOptions {}
3829 err := opts .Run ()
3930 assert .Error (t , err )
4031 assert .Contains (t , err .Error (), "Error while reading DeepSource CLI config" )
4132 })
4233
4334 t .Run ("not logged in - empty token" , func (t * testing.T ) {
44- mockMu .Lock ()
45- originalGetConfig := getConfigFn
46- getConfigFn = func () (* config.CLIConfig , error ) {
47- return & config.CLIConfig {Token : "" }, nil
35+ opts := & LogoutOptions {
36+ GetConfigFn : func () (* config.CLIConfig , error ) {
37+ return & config.CLIConfig {Token : "" }, nil
38+ },
39+ ConfirmFromUserFn : func (msg , helpText string ) (bool , error ) {
40+ return false , nil
41+ },
4842 }
49- mockMu .Unlock ()
50-
51- defer func () {
52- mockMu .Lock ()
53- getConfigFn = originalGetConfig
54- mockMu .Unlock ()
55- }()
56-
57- opts := LogoutOptions {}
5843 err := opts .Run ()
5944 assert .Error (t , err )
6045 assert .Contains (t , err .Error (), "not logged into DeepSource" )
6146 })
6247
6348 t .Run ("user cancels logout" , func (t * testing.T ) {
64- mockMu .Lock ()
65- originalGetConfig := getConfigFn
66- originalConfirm := confirmFromUserFn
67-
68- getConfigFn = func () (* config.CLIConfig , error ) {
69- return & config.CLIConfig {Token : "valid_token" }, nil
70- }
71- confirmFromUserFn = func (msg , helpText string ) (bool , error ) {
72- return false , nil // User cancels
49+ opts := & LogoutOptions {
50+ GetConfigFn : func () (* config.CLIConfig , error ) {
51+ return & config.CLIConfig {Token : "valid_token" }, nil
52+ },
53+ ConfirmFromUserFn : func (msg , helpText string ) (bool , error ) {
54+ return false , nil // User cancels
55+ },
7356 }
74- mockMu .Unlock ()
75-
76- defer func () {
77- mockMu .Lock ()
78- getConfigFn = originalGetConfig
79- confirmFromUserFn = originalConfirm
80- mockMu .Unlock ()
81- }()
82-
83- opts := LogoutOptions {}
8457 err := opts .Run ()
8558 assert .NoError (t , err )
8659 })
8760
8861 t .Run ("confirmation prompt returns error" , func (t * testing.T ) {
89- mockMu .Lock ()
90- originalGetConfig := getConfigFn
91- originalConfirm := confirmFromUserFn
92-
93- getConfigFn = func () (* config.CLIConfig , error ) {
94- return & config.CLIConfig {Token : "valid_token" }, nil
62+ opts := & LogoutOptions {
63+ GetConfigFn : func () (* config.CLIConfig , error ) {
64+ return & config.CLIConfig {Token : "valid_token" }, nil
65+ },
66+ ConfirmFromUserFn : func (msg , helpText string ) (bool , error ) {
67+ return false , errors .New ("prompt error" )
68+ },
9569 }
96- confirmFromUserFn = func (msg , helpText string ) (bool , error ) {
97- return false , errors .New ("prompt error" )
98- }
99- mockMu .Unlock ()
100-
101- defer func () {
102- mockMu .Lock ()
103- getConfigFn = originalGetConfig
104- confirmFromUserFn = originalConfirm
105- mockMu .Unlock ()
106- }()
107-
108- opts := LogoutOptions {}
10970 err := opts .Run ()
11071 assert .Error (t , err )
11172 assert .Contains (t , err .Error (), "prompt error" )
0 commit comments