behavior

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AutoVerifier

type AutoVerifier struct {
	// contains filtered or unexported fields
}

AutoVerifier handles automatic verification for simulated users. It monitors pending verifications and auto-approves them after a delay.

func NewAutoVerifier

func NewAutoVerifier(
	db *sql.DB,
	cfg *config.SimulationConfig,
	met *metrics.SimulationMetrics,
) *AutoVerifier

NewAutoVerifier creates a new auto-verifier.

func (*AutoVerifier) AutoApproveVerification

func (v *AutoVerifier) AutoApproveVerification(ctx context.Context, verificationID string) error

AutoApproveVerification directly approves a verification in the database. This bypasses the normal OTP flow for simulated users.

func (*AutoVerifier) GetPendingVerifications

func (v *AutoVerifier) GetPendingVerifications(ctx context.Context) ([]PendingVerification, error)

GetPendingVerifications retrieves pending verifications for simulated users.

func (*AutoVerifier) IsSimulatedUser

func (v *AutoVerifier) IsSimulatedUser(userID string) bool

IsSimulatedUser checks if a user ID is registered as simulated.

func (*AutoVerifier) ProcessPendingVerifications

func (v *AutoVerifier) ProcessPendingVerifications(ctx context.Context) error

ProcessPendingVerifications processes all pending verifications for simulated users.

func (*AutoVerifier) RegisterSimulatedUser

func (v *AutoVerifier) RegisterSimulatedUser(userID string)

RegisterSimulatedUser marks a user ID as simulated.

func (*AutoVerifier) RunAutoVerificationLoop

func (v *AutoVerifier) RunAutoVerificationLoop(ctx context.Context)

RunAutoVerificationLoop starts a background loop to process verifications.

func (*AutoVerifier) UnregisterSimulatedUser

func (v *AutoVerifier) UnregisterSimulatedUser(userID string)

UnregisterSimulatedUser removes a user ID from the simulated list.

type BehaviorInjector

type BehaviorInjector struct {
	// contains filtered or unexported fields
}

BehaviorInjector adds realistic delays and failures to operations.

func NewBehaviorInjector

func NewBehaviorInjector(cfg *config.SimulationConfig) *BehaviorInjector

NewBehaviorInjector creates a new behavior injector.

func (*BehaviorInjector) ApplyDelay

func (b *BehaviorInjector) ApplyDelay(ctx context.Context, operation string) error

ApplyDelay applies configured delay for an operation. Returns error if context is cancelled during delay.

func (*BehaviorInjector) GetDelayDuration

func (b *BehaviorInjector) GetDelayDuration(operation string) time.Duration

GetDelayDuration returns a random delay duration for metrics tracking.

func (*BehaviorInjector) GetFailureError

func (b *BehaviorInjector) GetFailureError(operation string) *errors.Error

GetFailureError returns an appropriate error for a failed operation.

func (*BehaviorInjector) ShouldFail

func (b *BehaviorInjector) ShouldFail(operation string) bool

ShouldFail determines if an operation should fail based on configured rates.

type PendingVerification

type PendingVerification struct {
	ID            string
	UserID        string
	OperationType string
	OTPCode       string
	ExpiresAt     time.Time
}

PendingVerification represents a pending verification from the database.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL