@@ -24,42 +24,83 @@ const (
24
24
)
25
25
26
26
func TestUserDatasource (t * testing.T ) {
27
- t .Setenv ("CODER_USER_ID" , "11111111-1111-1111-1111-111111111111" )
28
- t .Setenv ("CODER_USER_NAME" , "owner123" )
29
- t .Setenv ("CODER_USER_AVATAR_URL" , "https://example.com/avatar.png" )
30
- t .Setenv ("CODER_USER_FULL_NAME" , "Mr Owner" )
31
- t .
Setenv (
"CODER_USER_EMAIL" ,
"[email protected] " )
32
- t .Setenv ("CODER_USER_SSH_PUBLIC_KEY" , testSSHEd25519PublicKey )
33
- t .Setenv ("CODER_USER_SSH_PRIVATE_KEY" , testSSHEd25519PrivateKey )
34
- t .Setenv ("CODER_USER_GROUPS" , `["group1", "group2"]` )
27
+ t .Run ("OK" , func (t * testing.T ) {
28
+ t .Setenv ("CODER_USER_ID" , "11111111-1111-1111-1111-111111111111" )
29
+ t .Setenv ("CODER_USER_NAME" , "owner123" )
30
+ t .Setenv ("CODER_USER_FULL_NAME" , "Mr Owner" )
31
+ t .
Setenv (
"CODER_USER_EMAIL" ,
"[email protected] " )
32
+ t .Setenv ("CODER_USER_SSH_PUBLIC_KEY" , testSSHEd25519PublicKey )
33
+ t .Setenv ("CODER_USER_SSH_PRIVATE_KEY" , testSSHEd25519PrivateKey )
34
+ t .Setenv ("CODER_USER_GROUPS" , `["group1", "group2"]` )
35
+ t .Setenv ("CODER_USER_SESSION_TOKEN" , `supersecret` )
35
36
36
- resource .Test (t , resource.TestCase {
37
- Providers : map [string ]* schema.Provider {
38
- "coder" : provider .New (),
39
- },
40
- IsUnitTest : true ,
41
- Steps : []resource.TestStep {{
42
- Config : `
37
+ resource .Test (t , resource.TestCase {
38
+ Providers : map [string ]* schema.Provider {
39
+ "coder" : provider .New (),
40
+ },
41
+ IsUnitTest : true ,
42
+ Steps : []resource.TestStep {{
43
+ Config : `
43
44
provider "coder" {}
44
45
data "coder_user" "me" {}
45
46
` ,
46
- Check : func (s * terraform.State ) error {
47
- require .Len (t , s .Modules , 1 )
48
- require .Len (t , s .Modules [0 ].Resources , 1 )
49
- resource := s .Modules [0 ].Resources ["data.coder_user.me" ]
50
- require .NotNil (t , resource )
47
+ Check : func (s * terraform.State ) error {
48
+ require .Len (t , s .Modules , 1 )
49
+ require .Len (t , s .Modules [0 ].Resources , 1 )
50
+ resource := s .Modules [0 ].Resources ["data.coder_user.me" ]
51
+ require .NotNil (t , resource )
52
+
53
+ attrs := resource .Primary .Attributes
54
+ assert .Equal (t , "11111111-1111-1111-1111-111111111111" , attrs ["id" ])
55
+ assert .Equal (t , "owner123" , attrs ["name" ])
56
+ assert .Equal (t , "Mr Owner" , attrs ["full_name" ])
57
+ assert .
Equal (
t ,
"[email protected] " ,
attrs [
"email" ])
58
+ assert .Equal (t , testSSHEd25519PublicKey , attrs ["ssh_public_key" ])
59
+ assert .Equal (t , testSSHEd25519PrivateKey , attrs ["ssh_private_key" ])
60
+ assert .Equal (t , `group1` , attrs ["groups.0" ])
61
+ assert .Equal (t , `group2` , attrs ["groups.1" ])
62
+ assert .Equal (t , `supersecret` , attrs ["session_token" ])
63
+ return nil
64
+ },
65
+ }},
66
+ })
67
+ })
68
+
69
+ t .Run ("Compat" , func (t * testing.T ) {
70
+ t .Setenv ("CODER_WORKSPACE_OWNER" , "owner123" )
71
+ t .Setenv ("CODER_WORKSPACE_OWNER_NAME" , "Mr Owner" )
72
+ t .
Setenv (
"CODER_WORKSPACE_OWNER_EMAIL" ,
"[email protected] " )
73
+ t .Setenv ("CODER_WORKSPACE_OWNER_GROUPS" , `["group1", "group2"]` )
74
+ t .Setenv ("CODER_WORKSPACE_OWNER_SESSION_TOKEN" , `supersecret` )
51
75
52
- attrs := resource .Primary .Attributes
53
- assert .Equal (t , "11111111-1111-1111-1111-111111111111" , attrs ["id" ])
54
- assert .Equal (t , "owner123" , attrs ["name" ])
55
- assert .Equal (t , "Mr Owner" , attrs ["full_name" ])
56
- assert .
Equal (
t ,
"[email protected] " ,
attrs [
"email" ])
57
- assert .Equal (t , testSSHEd25519PublicKey , attrs ["ssh_public_key" ])
58
- assert .Equal (t , testSSHEd25519PrivateKey , attrs ["ssh_private_key" ])
59
- assert .Equal (t , `group1` , attrs ["groups.0" ])
60
- assert .Equal (t , `group2` , attrs ["groups.1" ])
61
- return nil
76
+ resource .Test (t , resource.TestCase {
77
+ Providers : map [string ]* schema.Provider {
78
+ "coder" : provider .New (),
62
79
},
63
- }},
80
+ IsUnitTest : true ,
81
+ Steps : []resource.TestStep {{
82
+ Config : `
83
+ provider "coder" {}
84
+ data "coder_user" "me" {}
85
+ ` ,
86
+ Check : func (s * terraform.State ) error {
87
+ require .Len (t , s .Modules , 1 )
88
+ require .Len (t , s .Modules [0 ].Resources , 1 )
89
+ resource := s .Modules [0 ].Resources ["data.coder_user.me" ]
90
+ require .NotNil (t , resource )
91
+
92
+ attrs := resource .Primary .Attributes
93
+ assert .NotEmpty (t , attrs ["id" ])
94
+ assert .Equal (t , "owner123" , attrs ["name" ])
95
+ assert .Equal (t , "Mr Owner" , attrs ["full_name" ])
96
+ assert .
Equal (
t ,
"[email protected] " ,
attrs [
"email" ])
97
+ assert .Equal (t , "missing" , attrs ["ssh_public_key" ])
98
+ assert .Equal (t , "missing" , attrs ["ssh_private_key" ])
99
+ assert .Equal (t , `group1` , attrs ["groups.0" ])
100
+ assert .Equal (t , `group2` , attrs ["groups.1" ])
101
+ return nil
102
+ },
103
+ }},
104
+ })
64
105
})
65
106
}
0 commit comments