github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/model/v1beta1/wasm_task_test.go (about) 1 package v1beta1 2 3 import ( 4 "testing" 5 6 "github.com/ipld/go-ipld-prime/codec/json" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestUnmarshalWasm(t *testing.T) { 11 bytes, err := tests.ReadFile("tasks/wasm_task.json") 12 require.NoError(t, err) 13 14 task, err := UnmarshalIPLD[Task](bytes, json.Decode, UCANTaskSchema) 15 require.NoError(t, err) 16 17 spec, err := task.ToSpec() 18 require.NoError(t, err) 19 require.Equal(t, EngineWasm, spec.Engine) 20 require.Equal(t, "_start", spec.Wasm.EntryPoint) 21 require.Equal(t, []string{"/inputs/data.tar.gz"}, spec.Wasm.Parameters) 22 require.Equal(t, map[string]string{"HELLO": "world"}, spec.Wasm.EnvironmentVariables) 23 require.Equal(t, []StorageSpec{ 24 {Path: "/job", StorageSource: StorageSourceIPFS, CID: "bafybeig7mdkzcgpacpozamv7yhhaelztfrnb6ozsupqqh7e5uyqdkijegi"}, 25 }, spec.Contexts) 26 require.Equal(t, []StorageSpec{ 27 {Path: "/inputs", StorageSource: StorageSourceURLDownload, URL: "https://www.example.com/data.tar.gz"}, 28 }, spec.Inputs) 29 require.Equal(t, []StorageSpec{ 30 {Path: "/outputs", Name: "outputs"}, 31 }, spec.Outputs) 32 }