Skip to content

Commit 1787183

Browse files
committed
Add quiet mode event coverage
Signed-off-by: Fnuworsu <nuworsufelix49@gmail.com>
1 parent 5d63da0 commit 1787183

2 files changed

Lines changed: 57 additions & 2 deletions

File tree

internal/app/azldev/event_test.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Copyright (c) Microsoft Corporation.
2+
// Licensed under the MIT License.
3+
4+
//nolint:testpackage // testing unexported internal types
5+
package azldev
6+
7+
import (
8+
"io"
9+
"os"
10+
"testing"
11+
12+
"github.com/stretchr/testify/assert"
13+
"github.com/stretchr/testify/require"
14+
)
15+
16+
func captureStderr(t *testing.T, action func()) string {
17+
t.Helper()
18+
19+
originalStderr := os.Stderr
20+
reader, writer, err := os.Pipe()
21+
require.NoError(t, err)
22+
23+
os.Stderr = writer
24+
25+
action()
26+
27+
require.NoError(t, writer.Close())
28+
29+
os.Stderr = originalStderr
30+
31+
output, err := io.ReadAll(reader)
32+
require.NoError(t, err)
33+
require.NoError(t, reader.Close())
34+
35+
return string(output)
36+
}
37+
38+
func TestEvent_QuietModeSkipsLongRunningAndProgressRendering(t *testing.T) {
39+
testEvent := &event{
40+
quiet: true,
41+
}
42+
43+
stderrOutput := captureStderr(t, func() {
44+
testEvent.SetLongRunning("working")
45+
testEvent.SetProgress(1, 10)
46+
})
47+
48+
assert.Empty(t, stderrOutput)
49+
assert.Nil(t, testEvent.spinner)
50+
assert.False(t, testEvent.initializedProgressBar)
51+
assert.Zero(t, testEvent.lastReportedCompletionRatio)
52+
}

internal/app/azldev/eventlistener.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,15 @@ func NewEventListener(eventLogger *slog.Logger, quiet bool) (*appEventListener,
3939
//
4040
//nolint:ireturn,nolintlint // We need to return an interface because of the interface definition.
4141
func (el *appEventListener) StartEvent(name string, args ...any) opctx.Event {
42-
if !el.quiet && name != "" {
42+
if name != "" {
4343
const spacesPerLevel = 2
4444

4545
prefix := strings.Repeat(" ", el.eventLevel*spacesPerLevel)
4646

47-
fmt.Fprintf(os.Stderr, "\r")
47+
if !el.quiet {
48+
fmt.Fprintf(os.Stderr, "\r")
49+
}
50+
4851
el.eventLogger.Info(prefix+name, args...)
4952
}
5053

0 commit comments

Comments
 (0)