zworld/engine/renderapi/descriptor/descriptor_struct_test.go
2024-01-14 22:56:06 +08:00

46 lines
927 B
Go

package descriptor_test
import (
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
. "zworld/engine/renderapi/descriptor"
"github.com/vkngwrapper/core/v2/core1_0"
)
var _ = Describe("descriptor struct parsing", func() {
type TestSet struct {
Set
Diffuse *Sampler
}
It("correctly parses valid structs", func() {
set := TestSet{
Diffuse: &Sampler{
Stages: core1_0.StageAll,
},
}
desc, err := ParseDescriptorStruct(&set)
Expect(err).ToNot(HaveOccurred())
Expect(desc).To(HaveLen(1), "expected to find diffuse descriptor")
})
It("rejects unset descriptor fields", func() {
set := TestSet{
Diffuse: nil,
}
_, err := ParseDescriptorStruct(&set)
Expect(err).To(HaveOccurred())
})
It("rejects non-pointer fields", func() {
type FailSet struct {
Set
Diffuse Sampler
}
set := FailSet{}
_, err := ParseDescriptorStruct(&set)
Expect(err).To(HaveOccurred())
})
})