Files
orchard/pkg/resource/v1/usb_accessories_test.go
T

31 lines
812 B
Go

package v1_test
import (
"encoding/json"
"testing"
v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
"github.com/stretchr/testify/require"
)
func TestUSBAccessoriesSpecification(t *testing.T) {
var vm v1.VM
require.NoError(t, json.Unmarshal([]byte(`{"runtime":"tart"}`), &vm))
require.False(t, vm.USBAccessories)
require.False(t, vm.Suspendable)
require.NoError(t, vm.Validate())
previous := vm.VMSpec
vm.USBAccessories = true
require.False(t, v1.SemanticallyEqual(previous, vm.VMSpec))
encoded, err := json.Marshal(vm.VMSpec)
require.NoError(t, err)
require.Contains(t, string(encoded), `"usbAccessories":true`)
vm.Runtime = v1.RuntimeVetu
require.ErrorContains(t, vm.Validate(), `does not support field "usbAccessories"`)
vm.USBAccessories = false
require.NoError(t, vm.Validate())
}