mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2025-02-21 02:55:37 -08:00
107 lines
2.4 KiB
Go
107 lines
2.4 KiB
Go
package segments
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/jandedobbeleer/oh-my-posh/src/mock"
|
|
"github.com/jandedobbeleer/oh-my-posh/src/platform"
|
|
"github.com/jandedobbeleer/oh-my-posh/src/properties"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestConnection(t *testing.T) {
|
|
type connectionResponse struct {
|
|
Connection *platform.Connection
|
|
Error error
|
|
}
|
|
cases := []struct {
|
|
Case string
|
|
ExpectedString string
|
|
ExpectedEnabled bool
|
|
ConnectionType string
|
|
Connections []*connectionResponse
|
|
}{
|
|
{
|
|
Case: "WiFi only, enabled",
|
|
ExpectedString: "\uf1eb",
|
|
ExpectedEnabled: true,
|
|
ConnectionType: "wifi",
|
|
Connections: []*connectionResponse{
|
|
{
|
|
Connection: &platform.Connection{
|
|
Name: "WiFi",
|
|
Type: "wifi",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Case: "WiFi only, disabled",
|
|
ConnectionType: "wifi",
|
|
Connections: []*connectionResponse{
|
|
{
|
|
Connection: &platform.Connection{
|
|
Type: platform.WIFI,
|
|
},
|
|
Error: fmt.Errorf("no connection"),
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Case: "WiFi and Ethernet, enabled",
|
|
ConnectionType: "wifi|ethernet",
|
|
ExpectedString: "\ueba9",
|
|
ExpectedEnabled: true,
|
|
Connections: []*connectionResponse{
|
|
{
|
|
Connection: &platform.Connection{
|
|
Type: platform.WIFI,
|
|
},
|
|
Error: fmt.Errorf("no connection"),
|
|
},
|
|
{
|
|
Connection: &platform.Connection{
|
|
Type: platform.ETHERNET,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
Case: "WiFi and Ethernet, disabled",
|
|
ConnectionType: "wifi|ethernet",
|
|
Connections: []*connectionResponse{
|
|
{
|
|
Connection: &platform.Connection{
|
|
Type: platform.WIFI,
|
|
},
|
|
Error: fmt.Errorf("no connection"),
|
|
},
|
|
{
|
|
Connection: &platform.Connection{
|
|
Type: platform.ETHERNET,
|
|
},
|
|
Error: fmt.Errorf("no connection"),
|
|
},
|
|
},
|
|
},
|
|
}
|
|
for _, tc := range cases {
|
|
env := &mock.MockedEnvironment{}
|
|
for _, con := range tc.Connections {
|
|
env.On("Connection", con.Connection.Type).Return(con.Connection, con.Error)
|
|
}
|
|
c := &Connection{
|
|
env: env,
|
|
props: &properties.Map{
|
|
Type: tc.ConnectionType,
|
|
},
|
|
}
|
|
assert.Equal(t, tc.ExpectedEnabled, c.Enabled(), fmt.Sprintf("Failed in case: %s", tc.Case))
|
|
if tc.ExpectedEnabled {
|
|
assert.Equal(t, tc.ExpectedString, renderTemplate(env, c.Template(), c), fmt.Sprintf("Failed in case: %s", tc.Case))
|
|
}
|
|
}
|
|
}
|