Fake will populate any zero fields in the provided struct with fake data. Non-zero fields will remain unchanged. Usage: key := Fake(t, faker, database.APIKey{ TokenName: "keep-my-name", })
(t *testing.T, faker *gofakeit.Faker, seed T)
| 16 | // TokenName: "keep-my-name", |
| 17 | // }) |
| 18 | func Fake[T any](t *testing.T, faker *gofakeit.Faker, seed T) T { |
| 19 | t.Helper() |
| 20 | |
| 21 | var tmp T |
| 22 | err := faker.Struct(&tmp) |
| 23 | require.NoError(t, err, "failed to generate fake data for type %T", tmp) |
| 24 | |
| 25 | mergeZero(&seed, tmp) |
| 26 | return seed |
| 27 | } |
| 28 | |
| 29 | // mergeZero merges the fields of src into dst, but only if the field in dst is |
| 30 | // currently the zero value. |