mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2024-11-14 15:04:03 -08:00
57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package engine
|
|
|
|
import (
|
|
"oh-my-posh/segments"
|
|
"testing"
|
|
|
|
"github.com/gookit/config/v2"
|
|
"github.com/mitchellh/mapstructure"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func testClearDefaultConfig() {
|
|
config.Default().ClearAll()
|
|
}
|
|
|
|
func TestParseMappedLocations(t *testing.T) {
|
|
defer testClearDefaultConfig()
|
|
cases := []struct {
|
|
Case string
|
|
JSON string
|
|
}{
|
|
{Case: "new format", JSON: `{ "properties": { "mapped_locations": {"folder1": "one","folder2": "two"} } }`},
|
|
{Case: "old format", JSON: `{ "properties": { "mapped_locations": [["folder1", "one"], ["folder2", "two"]] } }`},
|
|
}
|
|
for _, tc := range cases {
|
|
config.ClearAll()
|
|
config.WithOptions(func(opt *config.Options) {
|
|
opt.DecoderConfig = &mapstructure.DecoderConfig{
|
|
TagName: "config",
|
|
}
|
|
})
|
|
err := config.LoadStrings(config.JSON, tc.JSON)
|
|
assert.NoError(t, err)
|
|
var segment Segment
|
|
err = config.BindStruct("", &segment)
|
|
assert.NoError(t, err)
|
|
mappedLocations := segment.Properties.GetKeyValueMap(segments.MappedLocations, make(map[string]string))
|
|
assert.Equal(t, "two", mappedLocations["folder2"])
|
|
}
|
|
}
|
|
|
|
func TestEscapeGlyphs(t *testing.T) {
|
|
defer testClearDefaultConfig()
|
|
cases := []struct {
|
|
Input string
|
|
Expected string
|
|
}{
|
|
{Input: "a", Expected: "a"},
|
|
{Input: "\ue0b4", Expected: "\\ue0b4"},
|
|
{Input: "\ufd03", Expected: "\\ufd03"},
|
|
{Input: "}", Expected: "}"},
|
|
}
|
|
for _, tc := range cases {
|
|
assert.Equal(t, tc.Expected, escapeGlyphs(tc.Input), tc.Input)
|
|
}
|
|
}
|