DATA-DOG/go-sqlmock ExpectExec not working when expecting ID insertion

260 Views Asked by At

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?

0

There are 0 best solutions below