taproot-assets
taproot-assets copied to clipboard
poc: rpc prop tests
Starts to address #1078 .
I think this logic can probably be simplified a fair amount wrt. reducing the # of switches. I think adding wrapper types with their own validity-checking functions would also help for that; handling proto enums makes the test a lot larger, but I think most of the REST endpoints will have enum fields to support arguments as strings.
Rapid has some functions to autogenerate values via reflection: https://pkg.go.dev/pgregory.net/rapid#Make
I'm not sure if that will populate the gRPC private fields like state
, unknownFields
, etc. IIUC we don't want those to be populated.
This small test found some missing checks, which would probably get rejected later on. Will peek at other RPCs with more fields to test out more complex invariants.