I am working with DATA-DOG/go-sqlmock to test my repository insert method.
I noticed that everything works just fine when expecting any fields but ID.
Once I want to test my entity insertion with ID i receive call to Query ... was not expected
Example of working code:
type Some struct {
SomeField string
}
some := Some{
SomeField: "123",
}
sqlMock.ExpectExec(regexp.QuoteMeta(`INSERT INTO "some"`)).
WithArgs(some.SomeField).
WillReturnResult(sqlmock.NewResult(1, 1))
err := repository.Insert(&some)
Not working code:
type Some struct {
ID string
SomeField string
}
some := Some{
ID: "12345"
SomeField: "123",
}
sqlMock.ExpectExec(regexp.QuoteMeta(`INSERT INTO "some"`)).
WithArgs(some.ID, some.SomeField).
WillReturnResult(sqlmock.NewResult(1, 1))
err := repository.Insert(&some)
repository.Insert
wraps gorm.Create(some)
What I am missing here?