Skip to content

Commit

Permalink
populate missing config values in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
kmoe committed Sep 28, 2021
1 parent e8f62d7 commit 6eba869
Showing 1 changed file with 134 additions and 15 deletions.
149 changes: 134 additions & 15 deletions tfsdk/serve_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 6eba869

Please sign in to comment.