package seed import ( "context" "testing" "time" "git.gocasts.ir/ebhomengo/niki/entity" "git.gocasts.ir/ebhomengo/niki/repository/mysql" "github.com/brianvoe/gofakeit/v6" "github.com/stretchr/testify/assert" ) // nolint func CreateBenefactor(t *testing.T, db *mysql.DB) (*entity.Benefactor, func()) { t.Helper() benefactor := &entity.Benefactor{ FirstName: gofakeit.FirstName(), LastName: gofakeit.LastName(), PhoneNumber: gofakeit.Phone(), Address: gofakeit.Address().Address, Description: "", Email: gofakeit.Email(), City: gofakeit.City(), Gender: 0, Status: entity.BenefactorActiveStatus, Birthdate: time.Time{}, Role: entity.UserBenefactorRole, } ctx := context.Background() res, err := db.Conn().ExecContext(ctx, `insert into benefactors(phone_number, status, role) values(?, ?, ?)`, benefactor.PhoneNumber, benefactor.Status.String(), benefactor.Role.String()) assert.Nil(t, err) //nolint id, _ := res.LastInsertId() benefactor.ID = uint(id) return benefactor, func() { _, err := db.Conn().ExecContext(ctx, `delete from benefactors where id=?`, id) assert.Nil(t, err) } } // nolint func CreateAddress(t *testing.T, db *mysql.DB, benfactorID uint) (*entity.Address, func()) { t.Helper() address := &entity.Address{ PostalCode: gofakeit.Address().Zip, Address: gofakeit.Address().Address, Lat: float32(gofakeit.Address().Latitude), Lon: float32(gofakeit.Address().Longitude), //nolint CityID: 1, //nolint ProvinceID: 15, BenefactorID: benfactorID, } ctx := context.Background() res, err := db.Conn().ExecContext(ctx, `insert into addresses(postal_code, address, lat, lon,province_id,city_id,benefactor_id) values(?, ?, ?,?,?,?,?)`, address.PostalCode, address.Address, address.Lat, address.Lon, address.ProvinceID, address.CityID, address.BenefactorID) assert.Nil(t, err) //nolint // error is always nil id, _ := res.LastInsertId() address.ID = uint(id) return address, func() { _, err := db.Conn().ExecContext(ctx, `delete from addresses where id=?`, id) assert.Nil(t, err) } } func DeleteBenefactor(t *testing.T, db *mysql.DB, kindBoxReqID uint) { t.Helper() _, mErr := db.Conn().Exec(`delete from kind_box_reqs where id=?`, kindBoxReqID) assert.Nil(t, mErr) }