forked from ebhomengo/niki
80 lines
2.3 KiB
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)
|
|
}
|