// package mock_web -- мок веб-сервер для тестов
package mock_web

import (
	"fmt"

	"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() error {
	return nil
}

// FiberApp -- возвращает приложение fiber
func (sf *MockWeb) FiberApp() *fiber.App {
	return sf.fiberApp
}
