TestErrorFieldManipulation tests field access and modification
(t *testing.T)
| 176 | |
| 177 | // TestErrorFieldManipulation tests field access and modification |
| 178 | func TestErrorFieldManipulation(t *testing.T) { |
| 179 | err := &Error{ |
| 180 | Name: "InitialError", |
| 181 | Message: "initial message", |
| 182 | } |
| 183 | |
| 184 | // Test initial values |
| 185 | require.EqualValues(t, "InitialError: initial message", err.Error()) |
| 186 | |
| 187 | // Test field modification |
| 188 | err.Name = "ModifiedError" |
| 189 | err.Message = "modified message" |
| 190 | err.Cause = "new cause" |
| 191 | err.Stack = "new stack trace" |
| 192 | err.JSONString = `{"modified": true}` |
| 193 | |
| 194 | // Test after modification |
| 195 | require.EqualValues(t, "ModifiedError: modified message (cause: new cause)", err.Error()) |
| 196 | require.EqualValues(t, "ModifiedError", err.Name) |
| 197 | require.EqualValues(t, "modified message", err.Message) |
| 198 | require.EqualValues(t, "new cause", err.Cause) |
| 199 | require.EqualValues(t, "new stack trace", err.Stack) |
| 200 | require.EqualValues(t, `{"modified": true}`, err.JSONString) |
| 201 | |
| 202 | // Test zero value behavior |
| 203 | var zeroErr *Error = &Error{} |
| 204 | require.EqualValues(t, "", zeroErr.Name) |
| 205 | require.EqualValues(t, "", zeroErr.Message) |
| 206 | require.EqualValues(t, "", zeroErr.Cause) |
| 207 | require.EqualValues(t, "", zeroErr.Stack) |
| 208 | require.EqualValues(t, "", zeroErr.JSONString) |
| 209 | require.EqualValues(t, ": ", zeroErr.Error()) |
| 210 | } |