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  }