5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-10 02:21:11 +08:00
wails/v3/pkg/application/options_application_test.go

124 lines
2.4 KiB
Go

package application
import (
"reflect"
"testing"
)
func TestOptions_getOptions(t *testing.T) {
tests := []struct {
name string
input Options
debugMode bool
want Options
}{
{
name: "Override Icon in Production",
input: Options{
Icon: []byte("debug-icon"),
ProductionOverrides: &Options{
Icon: []byte("prod-icon"),
},
},
want: Options{
Icon: []byte("prod-icon"),
},
},
{
name: "Don't override Icon in debug",
input: Options{
Icon: []byte("debug-icon"),
ProductionOverrides: &Options{
Icon: []byte("prod-icon"),
},
},
debugMode: true,
want: Options{
Icon: []byte("debug-icon"),
},
},
{
name: "Override Mac in Production",
input: Options{
Mac: MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: false,
},
ProductionOverrides: &Options{
Mac: MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
},
},
want: Options{
Mac: MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
},
},
{
name: "Don't override Mac in debug",
input: Options{
Mac: MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: false,
},
ProductionOverrides: &Options{
Mac: MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
},
},
debugMode: true,
want: Options{
Mac: MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: false,
},
},
},
{
name: "Override Flags in Production",
input: Options{
Flags: map[string]interface{}{
"environment": "debug",
},
ProductionOverrides: &Options{
Flags: map[string]interface{}{
"environment": "prod",
},
},
},
want: Options{
Flags: map[string]interface{}{
"environment": "prod",
},
},
},
{
name: "Do not override Flags in debug",
input: Options{
Flags: map[string]interface{}{
"environment": "debug",
},
ProductionOverrides: &Options{
Flags: map[string]interface{}{
"environment": "prod",
},
},
},
debugMode: true,
want: Options{
Flags: map[string]interface{}{
"environment": "debug",
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := tt.input.getOptions(tt.debugMode); !reflect.DeepEqual(got, tt.want) {
t.Errorf("getOptions() = %v, want %v", got, tt.want)
}
})
}
}