niki/test/seed/kind_box_req.go

80 lines
2.3 KiB
Go

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)
}