Documentation
¶
Overview ¶
Package testhelpers provides shared testing utilities used across unit and acceptance tests.
Intended use:
- Unit tests: builders, fixtures, and assertions to reduce boilerplate.
- Acceptance tests: environment pre-checks, deterministic name generators, retry/backoff test stubs, and helpers for external service setup/teardown.
- HTTP/logging tests: redaction utilities, fake clients/round-trippers, and golden-file helpers with stable, sorted outputs.
Conventions:
- Keep dependencies minimal and avoid importing production-only paths.
- Ensure deterministic outputs: sort collections, use stable IDs, and normalize values before comparisons or serialization.
- Never leak secrets in logs, errors, or golden files; always redact.
This package is for test code and is not part of the provider's public API.
Index ¶
- Constants
- Variables
- func BuildLargeBody() string
- func MkRS(code int, headers http.Header, body string) *models.ResponseScheme
- func MkRSWithBodyAndHeaders(code int, hdr http.Header, body string) *models.ResponseScheme
- func MustCopy(t *testing.T, name string, r io.Reader) string
- func MustReadTemplate(t *testing.T, name string) string
- func TemplatePath(name string) string
- type FakeNetErr
- type FakeTypeService
- func (f *FakeTypeService) Create(ctx context.Context, payload *models.IssueTypePayloadScheme) (*models.IssueTypeScheme, *models.ResponseScheme, error)
- func (f *FakeTypeService) Delete(ctx context.Context, id string) (*models.ResponseScheme, error)
- func (f *FakeTypeService) Get(ctx context.Context, id string) (*models.IssueTypeScheme, *models.ResponseScheme, error)
- func (f *FakeTypeService) Update(ctx context.Context, id string, payload *models.IssueTypePayloadScheme) (*models.IssueTypeScheme, *models.ResponseScheme, error)
Constants ¶
const ( TmplPath = "./testdata/templates" DataWorkTypesTmpl = "data.work_types.tf.tmpl" WorkTypeTmpl = "work_type.tf.tmpl" )
const ( HierarchyStandard = 0 HierarchySubtask = -1 )
Common hierarchy levels used across tests.
Variables ¶
var ( DataWorkTypesTmplPath = filepath.Join(TmplPath, DataWorkTypesTmpl) WorkTypeTmplPath = filepath.Join(TmplPath, WorkTypeTmpl) StandardWorkType = 0 SubtaskWorkType = -1 )
Functions ¶
func BuildLargeBody ¶
func BuildLargeBody() string
BuildLargeBody creates a large JSON-like string embedding various secrets to validate both truncation and redaction. Size target ~2MB.
func MkRSWithBodyAndHeaders ¶
func MustReadTemplate ¶
MustReadTemplate reads a template by name or fails the test.
func TemplatePath ¶
TemplatePath returns an absolute path to a template file under testdata/templates.
Types ¶
type FakeNetErr ¶
type FakeNetErr struct {
// contains filtered or unexported fields
}
FakeNetErr for testing ShouldRetry timeout path
func NewFakeNetErr ¶
func NewFakeNetErr(timeout bool) FakeNetErr
NewFakeNetErr constructs a FakeNetErr with the provided timeout flag.
func (FakeNetErr) Error ¶
func (e FakeNetErr) Error() string
func (FakeNetErr) Temporary ¶
func (e FakeNetErr) Temporary() bool
func (FakeNetErr) Timeout ¶
func (e FakeNetErr) Timeout() bool
type FakeTypeService ¶
type FakeTypeService struct {
CreateFn func(ctx context.Context, payload *models.IssueTypePayloadScheme) (*models.IssueTypeScheme, *models.ResponseScheme, error)
GetFn func(ctx context.Context, id string) (*models.IssueTypeScheme, *models.ResponseScheme, error)
UpdateFn func(ctx context.Context, id string, payload *models.IssueTypePayloadScheme) (*models.IssueTypeScheme, *models.ResponseScheme, error)
DeleteFn func(ctx context.Context, id string) (*models.ResponseScheme, error)
}
FakeTypeService provides a minimal test double for jira.TypeConnector used in unit tests. It exposes function fields so tests can customize behavior per case.
func (*FakeTypeService) Create ¶
func (f *FakeTypeService) Create(ctx context.Context, payload *models.IssueTypePayloadScheme) (*models.IssueTypeScheme, *models.ResponseScheme, error)
func (*FakeTypeService) Delete ¶
func (f *FakeTypeService) Delete(ctx context.Context, id string) (*models.ResponseScheme, error)
func (*FakeTypeService) Get ¶
func (f *FakeTypeService) Get(ctx context.Context, id string) (*models.IssueTypeScheme, *models.ResponseScheme, error)
func (*FakeTypeService) Update ¶
func (f *FakeTypeService) Update(ctx context.Context, id string, payload *models.IssueTypePayloadScheme) (*models.IssueTypeScheme, *models.ResponseScheme, error)