fix: TOML colorization now works when NO_COLOR env is set (#2584)

The colorizeToml function intended to force colors by setting
color.NoColor = false, but SprintFunc() still respects the NO_COLOR
environment variable. This caused TestTomlColourization to fail in
CI environments where NO_COLOR=1 is set.

Fixed by calling EnableColor() on each color object, which explicitly
forces colors regardless of environment settings.

Vibe-coded with Cursor (Claude Opus 4)
This commit is contained in:
jfenal
2026-01-31 14:49:42 +11:00
committed by GitHub
parent 5f90039bdc
commit c4f4e6d416
2 changed files with 22 additions and 8 deletions
+8 -2
View File
@@ -632,6 +632,11 @@ func TestTomlScenarios(t *testing.T) {
// TestTomlColourization tests that colourization correctly distinguishes
// between table section headers and inline arrays
func TestTomlColourization(t *testing.T) {
// Save and restore color state
oldNoColor := color.NoColor
color.NoColor = false
defer func() { color.NoColor = oldNoColor }()
// Test that inline arrays are not coloured as table sections
encoder := &tomlEncoder{prefs: TomlPreferences{ColorsEnabled: true}}
@@ -655,8 +660,9 @@ alpha = "test"
// for actual table sections, not for inline arrays.
// Get the ANSI codes for section colour (Yellow + Bold)
sectionColour := color.New(color.FgYellow, color.Bold).SprintFunc()
sampleSection := sectionColour("[database]")
sectionColourObj := color.New(color.FgYellow, color.Bold)
sectionColourObj.EnableColor()
sampleSection := sectionColourObj.Sprint("[database]")
// Extract just the ANSI codes from the sample
// ANSI codes start with \x1b[