mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2025-02-02 05:41:10 -08:00
introducing a map of named standard color values that can be referenced in theme segments
59 lines
2 KiB
Go
59 lines
2 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/alecthomas/assert"
|
|
)
|
|
|
|
func TestGetAnsiFromColorString(t *testing.T) {
|
|
cases := []struct {
|
|
Case string
|
|
Expected AnsiColor
|
|
Color string
|
|
Background bool
|
|
}{
|
|
{Case: "Invalid background", Expected: emptyAnsiColor, Color: "invalid", Background: true},
|
|
{Case: "Invalid background", Expected: emptyAnsiColor, Color: "invalid", Background: false},
|
|
{Case: "Hex foreground", Expected: AnsiColor("38;2;170;187;204"), Color: "#AABBCC", Background: false},
|
|
{Case: "Hex backgrond", Expected: AnsiColor("48;2;170;187;204"), Color: "#AABBCC", Background: true},
|
|
{Case: "Base 8 foreground", Expected: AnsiColor("31"), Color: "red", Background: false},
|
|
{Case: "Base 8 background", Expected: AnsiColor("41"), Color: "red", Background: true},
|
|
{Case: "Base 16 foreground", Expected: AnsiColor("91"), Color: "lightRed", Background: false},
|
|
{Case: "Base 16 backround", Expected: AnsiColor("101"), Color: "lightRed", Background: true},
|
|
}
|
|
for _, tc := range cases {
|
|
ansiColors := &DefaultColors{}
|
|
ansiColor := ansiColors.AnsiColorFromString(tc.Color, tc.Background)
|
|
assert.Equal(t, tc.Expected, ansiColor, tc.Case)
|
|
}
|
|
}
|
|
|
|
func TestMakeColors(t *testing.T) {
|
|
colors := makeColors(nil, false)
|
|
assert.IsType(t, &DefaultColors{}, colors)
|
|
|
|
colors = makeColors(nil, true)
|
|
assert.IsType(t, &CachedColors{}, colors)
|
|
assert.IsType(t, &DefaultColors{}, colors.(*CachedColors).ansiColors)
|
|
|
|
colors = makeColors(testPalette, false)
|
|
assert.IsType(t, &PaletteColors{}, colors)
|
|
assert.IsType(t, &DefaultColors{}, colors.(*PaletteColors).ansiColors)
|
|
|
|
colors = makeColors(testPalette, true)
|
|
assert.IsType(t, &CachedColors{}, colors)
|
|
assert.IsType(t, &PaletteColors{}, colors.(*CachedColors).ansiColors)
|
|
assert.IsType(t, &DefaultColors{}, colors.(*CachedColors).ansiColors.(*PaletteColors).ansiColors)
|
|
}
|
|
|
|
func BenchmarkEngineRenderPalette(b *testing.B) {
|
|
var err error
|
|
for i := 0; i < b.N; i++ {
|
|
err = engineRender("jandedobbeleer-palette.omp.json")
|
|
if err != nil {
|
|
b.Fatal(err)
|
|
}
|
|
}
|
|
}
|