...
1
16
17 package ktesting
18
19 import (
20 "fmt"
21 "strings"
22
23 "k8s.io/klog/v2"
24 )
25
26
27
28
29
30
31
32
33
34
35
36 func WithStep(tCtx TContext, what string) TContext {
37 sCtx := &stepContext{
38 TContext: tCtx,
39 what: what,
40 }
41 return WithLogger(sCtx, klog.LoggerWithName(sCtx.Logger(), what))
42 }
43
44 type stepContext struct {
45 TContext
46 what string
47 }
48
49 func (sCtx *stepContext) Log(args ...any) {
50 sCtx.Helper()
51 sCtx.TContext.Log(sCtx.what + ": " + strings.TrimSpace(fmt.Sprintln(args...)))
52 }
53
54 func (sCtx *stepContext) Logf(format string, args ...any) {
55 sCtx.Helper()
56 sCtx.TContext.Log(sCtx.what + ": " + strings.TrimSpace(fmt.Sprintf(format, args...)))
57 }
58
59 func (sCtx *stepContext) Error(args ...any) {
60 sCtx.Helper()
61 sCtx.TContext.Error(sCtx.what + ": " + strings.TrimSpace(fmt.Sprintln(args...)))
62 }
63
64 func (sCtx *stepContext) Errorf(format string, args ...any) {
65 sCtx.Helper()
66 sCtx.TContext.Error(sCtx.what + ": " + strings.TrimSpace(fmt.Sprintf(format, args...)))
67 }
68
69 func (sCtx *stepContext) Fatal(args ...any) {
70 sCtx.Helper()
71 sCtx.TContext.Fatal(sCtx.what + ": " + strings.TrimSpace(fmt.Sprintln(args...)))
72 }
73
74 func (sCtx *stepContext) Fatalf(format string, args ...any) {
75 sCtx.Helper()
76 sCtx.TContext.Fatal(sCtx.what + ": " + strings.TrimSpace(fmt.Sprintf(format, args...)))
77 }
78
79
80 func (sCtx *stepContext) Value(key any) any {
81 if s, ok := key.(string); ok && s == ginkgoSpecContextKey {
82 if reporter, ok := sCtx.TContext.Value(key).(ginkgoReporter); ok {
83 return ginkgoReporter(&stepReporter{reporter: reporter, what: sCtx.what})
84 }
85 }
86 return sCtx.TContext.Value(key)
87 }
88
89 type stepReporter struct {
90 reporter ginkgoReporter
91 what string
92 }
93
94 var _ ginkgoReporter = &stepReporter{}
95
96 func (s *stepReporter) AttachProgressReporter(reporter func() string) func() {
97 return s.reporter.AttachProgressReporter(func() string {
98 report := reporter()
99 return s.what + ": " + report
100 })
101 }
102
View as plain text