@@ -118,6 +118,52 @@ func TestServer(t *testing.T) {
118
118
cancelFunc ()
119
119
<- done
120
120
})
121
+ // Duplicated test from "Development" above to test setting email/password via env.
122
+ t .Run ("Development with email and password from env" , func (t * testing.T ) {
123
+ // Cannot run parallell due to os.Setenv.
124
+ ctx , cancelFunc := context .WithCancel (context .Background ())
125
+ defer cancelFunc ()
126
+
127
+ wantEmail := "myadmin@coder.com"
128
+ wantPassword := "testpass42"
129
+ os .Setenv ("CODER_DEV_ADMIN_EMAIL" , wantEmail )
130
+ defer os .Unsetenv ("CODER_DEV_ADMIN_EMAIL" )
131
+ os .Setenv ("CODER_DEV_ADMIN_PASSWORD" , wantPassword )
132
+ defer os .Unsetenv ("CODER_DEV_ADMIN_PASSWORD" )
133
+
134
+ root , cfg := clitest .New (t , "server" , "--dev" , "--skip-tunnel" , "--address" , ":0" )
135
+ var buf strings.Builder
136
+ root .SetOutput (& buf )
137
+ done := make (chan struct {})
138
+ go func () {
139
+ defer close (done )
140
+
141
+ err := root .ExecuteContext (ctx )
142
+ require .ErrorIs (t , err , context .Canceled )
143
+
144
+ // Verify that credentials were output to the terminal.
145
+ assert .Contains (t , buf .String (), fmt .Sprintf ("email: %s" , wantEmail ), "expected output %q; got no match" , wantEmail )
146
+ assert .Contains (t , buf .String (), fmt .Sprintf ("password: %s" , wantPassword ), "expected output %q; got no match" , wantPassword )
147
+ }()
148
+ var token string
149
+ require .Eventually (t , func () bool {
150
+ var err error
151
+ token , err = cfg .Session ().Read ()
152
+ return err == nil
153
+ }, 15 * time .Second , 25 * time .Millisecond )
154
+ // Verify that authentication was properly set in dev-mode.
155
+ accessURL , err := cfg .URL ().Read ()
156
+ require .NoError (t , err )
157
+ parsed , err := url .Parse (accessURL )
158
+ require .NoError (t , err )
159
+ client := codersdk .New (parsed )
160
+ client .SessionToken = token
161
+ _ , err = client .User (ctx , codersdk .Me )
162
+ require .NoError (t , err )
163
+
164
+ cancelFunc ()
165
+ <- done
166
+ })
121
167
t .Run ("TLSBadVersion" , func (t * testing.T ) {
122
168
t .Parallel ()
123
169
ctx , cancelFunc := context .WithCancel (context .Background ())
0 commit comments