From 6eba869b695d39c03b0bb0d66a9afc10f19750b1 Mon Sep 17 00:00:00 2001 From: Katy Moe Date: Tue, 28 Sep 2021 15:34:40 +0100 Subject: [PATCH] populate missing config values in tests --- tfsdk/serve_test.go | 149 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 134 insertions(+), 15 deletions(-) diff --git a/tfsdk/serve_test.go b/tfsdk/serve_test.go index 49b9bac30..eb5fa2c1a 100644 --- a/tfsdk/serve_test.go +++ b/tfsdk/serve_test.go @@ -1832,7 +1832,24 @@ func TestServerPlanResourceChange(t *testing.T) { }), }), }), - config: tftypes.NewValue(testServeResourceTypeTwoType, nil), + config: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), resource: "test_two", resourceType: testServeResourceTypeTwoType, expectedPlannedState: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ @@ -1991,16 +2008,67 @@ func TestServerPlanResourceChange(t *testing.T) { }), }), }), - proposedNewState: tftypes.NewValue(testServeResourceTypeTwoType, nil), - config: tftypes.NewValue(testServeResourceTypeTwoType, nil), - resource: "test_two", - resourceType: testServeResourceTypeTwoType, - // when the config is null, the resource has been - // deleted, and the plan should reflect that - expectedPlannedState: tftypes.NewValue(testServeResourceTypeTwoType, nil), + proposedNewState: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), + config: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), + resource: "test_two", + resourceType: testServeResourceTypeTwoType, + expectedPlannedState: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), modifyPlanFunc: func(ctx context.Context, req ModifyResourcePlanRequest, resp *ModifyResourcePlanResponse) { + resp.RequiresReplace = []*tftypes.AttributePath{tftypes.NewAttributePath().WithAttributeName("id")} resp.AddWarning("I'm warning you", "You have been warned") }, + expectedRequiresReplace: []*tftypes.AttributePath{tftypes.NewAttributePath().WithAttributeName("id")}, expectedDiags: []*tfprotov6.Diagnostic{ { Severity: tfprotov6.DiagnosticSeverityWarning, @@ -2028,16 +2096,67 @@ func TestServerPlanResourceChange(t *testing.T) { }), }), }), - proposedNewState: tftypes.NewValue(testServeResourceTypeTwoType, nil), - config: tftypes.NewValue(testServeResourceTypeTwoType, nil), - resource: "test_two", - resourceType: testServeResourceTypeTwoType, - // when the config is null, that means the resource has - // been deleted, so the plan should reflect that - expectedPlannedState: tftypes.NewValue(testServeResourceTypeTwoType, nil), + proposedNewState: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), + config: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), + resource: "test_two", + resourceType: testServeResourceTypeTwoType, + expectedPlannedState: tftypes.NewValue(testServeResourceTypeTwoType, map[string]tftypes.Value{ + "id": tftypes.NewValue(tftypes.String, "123456"), + "disks": tftypes.NewValue(tftypes.List{ElementType: tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}}, []tftypes.Value{ + tftypes.NewValue(tftypes.Object{AttributeTypes: map[string]tftypes.Type{ + "name": tftypes.String, + "size_gb": tftypes.Number, + "boot": tftypes.Bool, + }}, map[string]tftypes.Value{ + "name": tftypes.NewValue(tftypes.String, "my-disk"), + "size_gb": tftypes.NewValue(tftypes.Number, 10), + "boot": tftypes.NewValue(tftypes.Bool, false), + }), + }), + }), modifyPlanFunc: func(ctx context.Context, req ModifyResourcePlanRequest, resp *ModifyResourcePlanResponse) { + resp.RequiresReplace = []*tftypes.AttributePath{tftypes.NewAttributePath().WithAttributeName("id")} resp.AddError("This is an error", "More details about the error") }, + expectedRequiresReplace: []*tftypes.AttributePath{tftypes.NewAttributePath().WithAttributeName("id")}, expectedDiags: []*tfprotov6.Diagnostic{ { Severity: tfprotov6.DiagnosticSeverityError,