Skip to content

Commit 748a40e

Browse files
committed
feat(security-email): working creation
Signed-off-by: Michal Wasilewski <[email protected]>
1 parent 92b9c5e commit 748a40e

File tree

3 files changed

+44
-7
lines changed

3 files changed

+44
-7
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package structs
22

33
type SecurityEmail struct {
4-
Email string `json:"email"`
4+
Email string `graphql:"email"`
55
}

spacelift/resource_security_email.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,10 @@ func resourceSecurityEmail() *schema.Resource {
3838

3939
func resourceSecurityEmailCreate(ctx context.Context, data *schema.ResourceData, i interface{}) diag.Diagnostics {
4040
var mutation struct {
41-
SecurityEmail *structs.SecurityEmail `graphql:"accountUpdateSecurityEmail(securityEmail: $email)"`
42-
}
43-
variables := map[string]interface{}{
44-
"email": toString(data.Get("email")),
41+
SecurityEmail *string `graphql:"accountUpdateSecurityEmail(securityEmail: $securityEmail)"`
4542
}
43+
44+
variables := map[string]interface{}{"securityEmail": toString(data.Get("email"))}
4645
if err := i.(*internal.Client).Mutate(ctx, "AccountUpdateSecurityEmail", &mutation, variables); err != nil {
4746
return diag.Errorf("could not create security email: %v", err)
4847
}
@@ -65,14 +64,14 @@ func resourceSecurityEmailRead(ctx context.Context, data *schema.ResourceData, i
6564
return nil
6665
}
6766

68-
data.Set("email", query.SecurityEmail.Email)
67+
data.Set("email", query.SecurityEmail)
6968

7069
return nil
7170
}
7271

7372
func resourceSecurityEmailUpdate(ctx context.Context, data *schema.ResourceData, i interface{}) diag.Diagnostics {
7473
var mutation struct {
75-
SecurityEmail *structs.SecurityEmail `graphql:"accountUpdateSecurityEmail(securityEmail: $email)"`
74+
SecurityEmail *string `graphql:"accountUpdateSecurityEmail(securityEmail: $email)"`
7675
}
7776
variables := map[string]interface{}{
7877
"email": toString(data.Get("email")),
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package spacelift
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8+
9+
. "github.com/spacelift-io/terraform-provider-spacelift/spacelift/internal/testhelpers"
10+
)
11+
12+
var securityEmailSimple = `
13+
resource "spacelift_security_email" "test" {
14+
email = "%s"
15+
}
16+
`
17+
18+
func Test_resourceSecurityEmail(t *testing.T) {
19+
const resourceName = "spacelift_resource_security_email.test"
20+
21+
t.Run("creates a security email without an error", func(t *testing.T) {
22+
exampleEmail := "[email protected]"
23+
testSteps(t, []resource.TestStep{
24+
{
25+
Config: fmt.Sprintf(securityEmailSimple, exampleEmail),
26+
Check: Resource(
27+
resourceName,
28+
Attribute("email", Equals(exampleEmail)),
29+
),
30+
},
31+
{
32+
ResourceName: resourceName,
33+
ImportState: true,
34+
ImportStateVerify: true,
35+
},
36+
})
37+
})
38+
}

0 commit comments

Comments
 (0)