diff --git a/types/did_doc_metadata.go b/types/did_doc_metadata.go index 48e891d3..618ac70f 100644 --- a/types/did_doc_metadata.go +++ b/types/did_doc_metadata.go @@ -14,11 +14,14 @@ type ResolutionDidDocMetadata struct { } type ResourcePreview struct { - ResourceURI string `json:"resourceURI,omitempty"` - Name string `json:"name,omitempty"` - ResourceType string `json:"resourceType,omitempty"` - MediaType string `json:"mediaType,omitempty"` - Created string `json:"created,omitempty"` + ResourceURI string `json:"resourceURI,omitempty"` + Name string `json:"name,omitempty"` + ResourceType string `json:"resourceType,omitempty"` + MediaType string `json:"mediaType,omitempty"` + Created string `json:"created,omitempty"` + Checksum []byte `json:"checksum,omitempty"` + PreviousVersionId string `json:"previousVersionId,omitempty"` + NextVersionId string `json:"nextVersionId,omitempty"` } func NewResolutionDidDocMetadata(did string, metadata cheqd.Metadata, resources []*resource.ResourceHeader) ResolutionDidDocMetadata { @@ -39,6 +42,9 @@ func NewResolutionDidDocMetadata(did string, metadata cheqd.Metadata, resources r.ResourceType, r.MediaType, r.Created, + r.Checksum, + r.PreviousVersionId, + r.NextVersionId, } newMetadata.Resources = append(newMetadata.Resources, resourcePreview) } diff --git a/types/did_doc_metadata_test.go b/types/did_doc_metadata_test.go new file mode 100644 index 00000000..1980e8fa --- /dev/null +++ b/types/did_doc_metadata_test.go @@ -0,0 +1,90 @@ +package types + +import ( + "testing" + + cheqd "github.com/cheqd/cheqd-node/x/cheqd/types" + resource "github.com/cheqd/cheqd-node/x/resource/types" + "github.com/stretchr/testify/require" +) + +func TestNewResolutionDidDocMetadata(t *testing.T) { + validIdentifier := "N22KY2Dyvmuu2Pyy" + validDid := "did:cheqd:mainnet:" + validIdentifier + validResourceId := "18e9d838-0bea-435b-964b-c6529ede6d2b" + resourceHeader := resource.ResourceHeader{ + CollectionId: validIdentifier, + Id: validResourceId, + Name: "Existing Resource Name", + ResourceType: "CL-Schema", + MediaType: "application/json", + Checksum: []byte("test_checksum")} + + validMetadataResource := ResourcePreview{ + ResourceURI: validDid + RESOURCE_PATH + resourceHeader.Id, + Name: resourceHeader.Name, + ResourceType: resourceHeader.ResourceType, + MediaType: resourceHeader.MediaType, + Created: resourceHeader.Created, + Checksum: resourceHeader.Checksum, + PreviousVersionId: resourceHeader.PreviousVersionId, + NextVersionId: resourceHeader.NextVersionId, + } + + subtests := []struct { + name string + metadata cheqd.Metadata + resources []*resource.ResourceHeader + expectedResult ResolutionDidDocMetadata + }{ + { + name: "matadata with resource", + metadata: cheqd.Metadata{ + VersionId: "test_version_id", + Deactivated: false, + Resources: []string{validResourceId}, + }, + resources: []*resource.ResourceHeader{&resourceHeader}, + expectedResult: ResolutionDidDocMetadata{ + VersionId: "test_version_id", + Deactivated: false, + Resources: []ResourcePreview{validMetadataResource}, + }, + }, + { + name: "matadata without resource in metadata", + metadata: cheqd.Metadata{ + VersionId: "test_version_id", + Deactivated: false, + }, + resources: []*resource.ResourceHeader{&resourceHeader}, + expectedResult: ResolutionDidDocMetadata{ + VersionId: "test_version_id", + Deactivated: false, + }, + }, + { + name: "matadata with resources", + metadata: cheqd.Metadata{ + VersionId: "test_version_id", + Deactivated: false, + Resources: []string{validResourceId}, + }, + resources: []*resource.ResourceHeader{}, + expectedResult: ResolutionDidDocMetadata{ + VersionId: "test_version_id", + Deactivated: false, + }, + }, + } + + for _, subtest := range subtests { + t.Run(subtest.name, func(t *testing.T) { + + result := NewResolutionDidDocMetadata(validDid, subtest.metadata, subtest.resources) + + require.EqualValues(t, subtest.expectedResult, result) + // require.EqualValues(t, subtest.expectedError, err) + }) + } +}