Skip to content

Commit 87fc9e2

Browse files
committed
Add test case for login
1 parent 9ec938e commit 87fc9e2

File tree

2 files changed

+63
-3
lines changed

2 files changed

+63
-3
lines changed

cli/clitest/clitest_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ package clitest_test
33
import (
44
"testing"
55

6+
"github.com/stretchr/testify/require"
7+
"go.uber.org/goleak"
8+
69
"github.com/coder/coder/cli/clitest"
710
"github.com/coder/coder/coderd/coderdtest"
811
"github.com/coder/coder/expect"
9-
"github.com/stretchr/testify/require"
10-
"go.uber.org/goleak"
1112
)
1213

1314
func TestMain(m *testing.M) {

cli/login_test.go

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package cli_test
22

33
import (
4+
"context"
45
"testing"
56

67
"github.com/coder/coder/cli/clitest"
7-
"github.com/coder/coder/expect"
8+
"github.com/coder/coder/coderd"
89
"github.com/coder/coder/coderd/coderdtest"
10+
"github.com/coder/coder/expect"
911
"github.com/stretchr/testify/require"
1012
)
1113

@@ -50,4 +52,61 @@ func TestLogin(t *testing.T) {
5052
_, err := console.ExpectString("Welcome to Coder")
5153
require.NoError(t, err)
5254
})
55+
56+
t.Run("ExistingUserValidTokenTTY", func(t *testing.T) {
57+
t.Parallel()
58+
client := coderdtest.New(t)
59+
_, err := client.CreateInitialUser(context.Background(), coderd.CreateInitialUserRequest{
60+
Username: "test-user",
61+
Email: "test-user@coder.com",
62+
Organization: "acme-corp",
63+
Password: "password",
64+
})
65+
require.NoError(t, err)
66+
token, err := client.LoginWithPassword(context.Background(), coderd.LoginWithPasswordRequest{
67+
Email: "test-user@coder.com",
68+
Password: "password",
69+
})
70+
require.NoError(t, err)
71+
72+
root, _ := clitest.New(t, "login", client.URL.String(), "--force-tty")
73+
console := expect.NewTestConsole(t, root)
74+
go func() {
75+
err := root.Execute()
76+
require.NoError(t, err)
77+
}()
78+
79+
_, err = console.ExpectString("Paste your token here:")
80+
require.NoError(t, err)
81+
_, err = console.SendLine(token.SessionToken)
82+
require.NoError(t, err)
83+
_, err = console.ExpectString("Welcome to Coder")
84+
require.NoError(t, err)
85+
})
86+
87+
t.Run("ExistingUserInvalidTokenTTY", func(t *testing.T) {
88+
t.Parallel()
89+
client := coderdtest.New(t)
90+
_, err := client.CreateInitialUser(context.Background(), coderd.CreateInitialUserRequest{
91+
Username: "test-user",
92+
Email: "test-user@coder.com",
93+
Organization: "acme-corp",
94+
Password: "password",
95+
})
96+
require.NoError(t, err)
97+
98+
root, _ := clitest.New(t, "login", client.URL.String(), "--force-tty")
99+
console := expect.NewTestConsole(t, root)
100+
go func() {
101+
err := root.Execute()
102+
require.Error(t, err)
103+
}()
104+
105+
_, err = console.ExpectString("Paste your token here:")
106+
require.NoError(t, err)
107+
_, err = console.SendLine("an-invalid-token")
108+
require.NoError(t, err)
109+
_, err = console.ExpectString("That's not a valid token!")
110+
require.NoError(t, err)
111+
})
53112
}

0 commit comments

Comments
 (0)