github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/pkg/model/v1beta1/task_test.go (about) 1 package v1beta1 2 3 import ( 4 "embed" 5 "path" 6 "testing" 7 8 "github.com/ipld/go-ipld-prime/codec/json" 9 "github.com/stretchr/testify/require" 10 ) 11 12 //go:embed tasks/*.json 13 var tests embed.FS 14 15 func TestCanUnmarshal(t *testing.T) { 16 entries, err := tests.ReadDir("tasks") 17 require.NoError(t, err) 18 19 for _, entry := range entries { 20 t.Run(entry.Name(), func(t *testing.T) { 21 bytes, err := tests.ReadFile(path.Join("tasks", entry.Name())) 22 require.NoError(t, err) 23 24 task, err := UnmarshalIPLD[Task](bytes, json.Decode, UCANTaskSchema) 25 require.NoError(t, err) 26 27 _, err = task.ToSpec() 28 require.NoError(t, err) 29 }) 30 } 31 } 32 33 func TestConfig(t *testing.T) { 34 bytes, err := tests.ReadFile("tasks/task_with_config.json") 35 require.NoError(t, err) 36 37 task, err := UnmarshalIPLD[Task](bytes, json.Decode, UCANTaskSchema) 38 require.NoError(t, err) 39 40 spec, err := task.ToSpec() 41 require.NoError(t, err) 42 43 require.Equal(t, VerifierNoop, spec.Verifier) 44 require.Equal(t, PublisherIpfs, spec.Publisher) 45 require.Equal(t, []string{"hello"}, spec.Annotations) 46 require.Equal(t, "1m", spec.Resources.CPU) 47 require.Equal(t, "1GB", spec.Resources.Disk) 48 require.Equal(t, "1GB", spec.Resources.Memory) 49 require.Equal(t, "0", spec.Resources.GPU) 50 require.Equal(t, 300.0, spec.Timeout) 51 require.Equal(t, false, spec.DoNotTrack) 52 }