package testutil

import (
	"testing"

	"github.com/stretchr/testify/suite"
)

// BaseSuite is a base test suite with common functionality for tests.
// It is designed for unit and mock-based integration tests and does not
// handle database connections.
type BaseSuite struct {
	suite.Suite
}

// SetupSuite can be overridden by specific test suites for setup.
func (s *BaseSuite) SetupSuite() {
	// No-op by default.
}

// TearDownSuite can be overridden by specific test suites for teardown.
func (s *BaseSuite) TearDownSuite() {
	// No-op by default.
}

// SetupTest can be overridden by specific test suites for per-test setup.
func (s *BaseSuite) SetupTest() {
	// No-op by default.
}

// TearDownTest can be overridden by specific test suites for per-test teardown.
func (s *BaseSuite) TearDownTest() {
	// No-op by default.
}

// SkipIfShort skips a test if the -short flag is provided.
func SkipIfShort(t *testing.T) {
	if testing.Short() {
		t.Skip("Skipping test in short mode")
	}
}