// package mock_web -- мок веб-сервер для тестов package mock_web import ( "fmt" "log" "github.com/gofiber/fiber/v2" "git.p78su.freemyip.com/svi/gostore/pkg/types" ) // MockWeb -- мок веб-сервер для тестов type MockWeb struct { serv types.IService fiberApp *fiber.App } // NewMockWeb -- возвращает мок веб-сервер для тестов func NewMockWeb(serv types.IService) (*MockWeb, error) { if serv == nil { return nil, fmt.Errorf("NewMockWeb(): serv==nil") } sf := &MockWeb{ serv: serv, fiberApp: fiber.New(), } return sf, nil } // Service -- возвращает сервис func (sf *MockWeb) Service() types.IService { return sf.serv } // Run -- запускает веб-сервер в работу func (sf *MockWeb) Run() { sf.serv.Wg().Add(1) go func() { err := sf.fiberApp.Listen(":25000") if err != nil { log.Printf("MockWeb.Run(): in listen port(25000), err=\n\t%v\n", err) sf.serv.CancelApp() sf.serv.Wg().Done() } }() } // FiberApp -- возвращает приложение fiber func (sf *MockWeb) FiberApp() *fiber.App { return sf.fiberApp }