| 115 | } |
| 116 | |
| 117 | func TestValidateProvisionMode(t *testing.T) { |
| 118 | images := `images: [{location: /}]` |
| 119 | provisionBoot := `provision: [{mode: boot, script: "touch /tmp/param-$PARAM_BOOT"}]` |
| 120 | y, err := Load(t.Context(), []byte(provisionBoot+"\n"+images), "lima.yaml") |
| 121 | assert.NilError(t, err) |
| 122 | |
| 123 | err = Validate(y, false) |
| 124 | assert.NilError(t, err) |
| 125 | |
| 126 | provisionUser := `provision: [{mode: user, script: "touch /tmp/param-$PARAM_USER"}]` |
| 127 | y, err = Load(t.Context(), []byte(provisionUser+"\n"+images), "lima.yaml") |
| 128 | assert.NilError(t, err) |
| 129 | |
| 130 | err = Validate(y, false) |
| 131 | assert.NilError(t, err) |
| 132 | |
| 133 | provisionDependency := `provision: [{mode: ansible, script: "touch /tmp/param-$PARAM_DEPENDENCY"}]` |
| 134 | y, err = Load(t.Context(), []byte(provisionDependency+"\n"+images), "lima.yaml") |
| 135 | assert.NilError(t, err) |
| 136 | |
| 137 | err = Validate(y, false) |
| 138 | assert.NilError(t, err) |
| 139 | |
| 140 | provisionInvalid := `provision: [{mode: invalid}]` |
| 141 | y, err = Load(t.Context(), []byte(provisionInvalid+"\n"+images), "lima.yaml") |
| 142 | assert.NilError(t, err) |
| 143 | |
| 144 | err = Validate(y, false) |
| 145 | assert.Error(t, err, "field `provision[0].mode` must one of `system`, `user`, `boot`, `data`, `dependency`, `ansible`, or `yq`\n"+ |
| 146 | "field `provision[0].script` must not be empty") |
| 147 | } |
| 148 | |
| 149 | func TestValidateProvisionData(t *testing.T) { |
| 150 | images := `images: [{location: /}]` |