|
4 | 4 | "testing" |
5 | 5 |
|
6 | 6 | "github.com/databricks/databricks-sdk-go/apierr" |
| 7 | + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" |
7 | 8 |
|
8 | 9 | "github.com/databricks/databricks-sdk-go/service/workspace" |
9 | 10 |
|
@@ -121,6 +122,95 @@ func TestResourceSecretCreate(t *testing.T) { |
121 | 122 | assert.Equal(t, "foo|||bar", d.Id()) |
122 | 123 | } |
123 | 124 |
|
| 125 | +func TestResourceSecretCreate_WriteOnlyValue(t *testing.T) { |
| 126 | + d, err := qa.ResourceFixture{ |
| 127 | + Fixtures: []qa.HTTPFixture{ |
| 128 | + { |
| 129 | + Method: "POST", |
| 130 | + Resource: "/api/2.0/secrets/put", |
| 131 | + ExpectedRequest: workspace.PutSecret{ |
| 132 | + StringValue: "SparkIsTh3Be$t", |
| 133 | + Scope: "foo", |
| 134 | + Key: "bar", |
| 135 | + }, |
| 136 | + }, |
| 137 | + { |
| 138 | + Method: "GET", |
| 139 | + Resource: "/api/2.0/secrets/list?scope=foo", |
| 140 | + Response: workspace.ListSecretsResponse{ |
| 141 | + Secrets: []workspace.SecretMetadata{ |
| 142 | + { |
| 143 | + Key: "bar", |
| 144 | + LastUpdatedTimestamp: 12345678, |
| 145 | + }, |
| 146 | + }, |
| 147 | + }, |
| 148 | + }, |
| 149 | + }, |
| 150 | + Resource: ResourceSecret(), |
| 151 | + State: map[string]any{ |
| 152 | + "scope": "foo", |
| 153 | + "key": "bar", |
| 154 | + "string_value_wo": "SparkIsTh3Be$t", |
| 155 | + "string_value_wo_version": 1, |
| 156 | + }, |
| 157 | + Create: true, |
| 158 | + }.Apply(t) |
| 159 | + assert.NoError(t, err) |
| 160 | + assert.Equal(t, "foo|||bar", d.Id()) |
| 161 | + assert.Equal(t, "", d.Get("string_value")) |
| 162 | +} |
| 163 | + |
| 164 | +func TestResourceSecretUpdate_WriteOnlyValueVersionChange(t *testing.T) { |
| 165 | + qa.ResourceFixture{ |
| 166 | + Fixtures: []qa.HTTPFixture{ |
| 167 | + { |
| 168 | + Method: "POST", |
| 169 | + Resource: "/api/2.0/secrets/put", |
| 170 | + ExpectedRequest: workspace.PutSecret{ |
| 171 | + StringValue: "SparkIsTh3Be$t-v2", |
| 172 | + Scope: "foo", |
| 173 | + Key: "bar", |
| 174 | + }, |
| 175 | + }, |
| 176 | + { |
| 177 | + Method: "GET", |
| 178 | + Resource: "/api/2.0/secrets/list?scope=foo", |
| 179 | + Response: workspace.ListSecretsResponse{ |
| 180 | + Secrets: []workspace.SecretMetadata{ |
| 181 | + { |
| 182 | + Key: "bar", |
| 183 | + LastUpdatedTimestamp: 12345679, |
| 184 | + }, |
| 185 | + }, |
| 186 | + }, |
| 187 | + }, |
| 188 | + }, |
| 189 | + Resource: ResourceSecret(), |
| 190 | + InstanceState: map[string]string{ |
| 191 | + "scope": "foo", |
| 192 | + "key": "bar", |
| 193 | + "string_value_wo_version": "1", |
| 194 | + }, |
| 195 | + State: map[string]any{ |
| 196 | + "scope": "foo", |
| 197 | + "key": "bar", |
| 198 | + "string_value_wo": "SparkIsTh3Be$t-v2", |
| 199 | + "string_value_wo_version": 2, |
| 200 | + }, |
| 201 | + ExpectedDiff: map[string]*terraform.ResourceAttrDiff{ |
| 202 | + "config_reference": {Old: "", New: "", NewComputed: true, NewRemoved: false, RequiresNew: false, Sensitive: false}, |
| 203 | + "key": {Old: "bar", New: "bar", NewComputed: false, NewRemoved: false, RequiresNew: false, Sensitive: false}, |
| 204 | + "last_updated_timestamp": {Old: "", New: "", NewComputed: true, NewRemoved: false, RequiresNew: false, Sensitive: false}, |
| 205 | + "scope": {Old: "foo", New: "foo", NewComputed: false, NewRemoved: false, RequiresNew: false, Sensitive: false}, |
| 206 | + "string_value_wo": {Old: "", New: "SparkIsTh3Be$t-v2", NewComputed: false, NewRemoved: false, RequiresNew: false, Sensitive: true}, |
| 207 | + "string_value_wo_version": {Old: "1", New: "2", NewComputed: false, NewRemoved: false, RequiresNew: true, Sensitive: false}, |
| 208 | + }, |
| 209 | + RequiresNew: true, |
| 210 | + ID: "foo|||bar", |
| 211 | + }.Apply(t) |
| 212 | +} |
| 213 | + |
124 | 214 | func TestResourceSecretCreate_Error(t *testing.T) { |
125 | 215 | d, err := qa.ResourceFixture{ |
126 | 216 | Fixtures: []qa.HTTPFixture{ |
|
0 commit comments