core/pretty_print_test.go
core/pretty_print_test.goBrowse 1970 files
545 tokens
2,044 bytes
Token encoding: o200k_base
Snapshot 21a254f
← Back to SKILL.md
1package core2 3import (4 "bytes"5 "testing"6 7 "github.com/charmbracelet/lipgloss"8 "github.com/muesli/termenv"9 "github.com/railwayapp/railpack/core/logger"10 "github.com/stretchr/testify/require"11)12 13func TestPrettyPrintStyles(t *testing.T) {14 highlighted := FormatHighlight("docker run -it shell-script")15 output := boxStyle.Render("Successfully built image in 1.08s\n\nRun:\n" + highlighted)16 17 require.Contains(t, output, "Successfully built image in 1.08s")18 require.Contains(t, output, "docker run -it shell-script")19 require.NotContains(t, output, "✓")20}21 22func TestPrettyPrintSectionHeader(t *testing.T) {23 var output bytes.Buffer24 PrettyPrintSectionHeader(&output, "Generated railpack-plan.json")25 26 require.Contains(t, output.String(), "Generated railpack-plan.json")27}28 29func TestPrettyPrintDeprecationLog(t *testing.T) {30 buildResult := &BuildResult{31 Logs: []logger.Msg{32 {33 Level: logger.Deprecation,34 Msg: "old behavior will change",35 },36 },37 }38 39 output := FormatBuildResult(buildResult)40 41 require.Contains(t, output, "⚑ Deprecated: Old behavior will change")42}43 44func TestPrettyPrintSuggestionLog(t *testing.T) {45 buildResult := &BuildResult{46 Logs: []logger.Msg{47 {48 Level: logger.Suggestion,49 Msg: "include `...` in `buildAptPackages`",50 DocsPath: "/guides/installing-packages",51 },52 },53 }54 55 output := FormatBuildResult(buildResult)56 57 require.Contains(t, output, "→ Include `...` in `buildAptPackages`")58 require.Contains(t, output, "https://railpack.com/guides/installing-packages")59}60 61func TestPrettyPrintJSON(t *testing.T) {62 originalProfile := lipgloss.ColorProfile()63 t.Cleanup(func() {64 lipgloss.SetColorProfile(originalProfile)65 })66 67 json := []byte(`{"key":"value","enabled":true}`)68 69 lipgloss.SetColorProfile(termenv.ANSI)70 var colored bytes.Buffer71 PrettyPrintJSON(&colored, json)72 require.Contains(t, colored.String(), "\x1b[")73 74 lipgloss.SetColorProfile(termenv.Ascii)75 var plain bytes.Buffer76 PrettyPrintJSON(&plain, json)77 require.Equal(t, string(json)+"\n", plain.String())78}79