testutils

package
v1.11.1 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

README

pkg/config-manager/testutils

This package provides testing utilities for config manager packages.

Purpose

Offers shared test helpers, scenario definitions, and reusable patterns for validating configuration managers across distributions.

Features

  • Test Scenario Utilities: Generic helpers for defining config manager test cases
  • Temporary File Management: Helpers for working with temporary config files in tests
  • Caching Validation: Utilities to verify configuration caching behavior
  • Error Scenario Support: Patterns for asserting configuration load failures

Usage

import "github.com/devantler-tech/ksail-go/pkg/config-manager/testutils"

func TestConfigManager(t *testing.T) {
    scenarios := []testutils.TestScenario[MyConfig]{
        {
            Name:           "valid config",
            ConfigContent:  "...",
            UseCustomConfigPath: true,
            ValidationFunc: func(t *testing.T, config *MyConfig) {
                // add assertions
            },
        },
    }

    testutils.RunConfigManagerTests(t, newManager, scenarios)
}

Key Components

  • helpers.go: Core helper functions, scenario definitions, and caching tests
  • test constants: Shared permissions and path helpers for test fixtures

This package ensures consistent and reliable testing patterns for configuration management functionality.


⬅️ Go Back

Documentation

Overview

Package testutils provides common test utilities for config manager testing.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssertConfigManagerCaches

func AssertConfigManagerCaches[T any](
	t *testing.T,
	fileName string,
	configContent string,
	newManager func(configPath string) configmanager.ConfigManager[T],
)

AssertConfigManagerCaches verifies that a config manager reuses a previously loaded configuration when the underlying file becomes invalid after the initial load.

func RunConfigManagerTests

func RunConfigManagerTests[T any](
	t *testing.T,
	newManager func(configPath string) configmanager.ConfigManager[T],
	scenarios []TestScenario[T],
)

RunConfigManagerTests runs a comprehensive test suite for config managers.

Types

type TestScenario

type TestScenario[T any] struct {
	Name                string
	ConfigContent       string
	APIVersion          string
	Kind                string
	ExpectedName        string
	ShouldError         bool
	ValidationFunc      func(t *testing.T, config *T)
	SetupFunc           func(t *testing.T) string // Returns config path
	UseCustomConfigPath bool
}

TestScenario represents a test scenario for config managers.

Jump to

Keyboard shortcuts

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