func verifyResponseFieldNames(expectedFields []string, responseBody []byte, responseName string) error {
	var responseMap map[string]json.RawMessage
	if err := json.Unmarshal(responseBody, &responseMap); err != nil {
		fmt.Errorf("unable to unmarshal %s response to response map", responseName)
	}

	for _, field := range expectedFields {
		if _, ok := responseMap[field]; !ok {
			return fmt.Errorf("missing field '%s' in %s response", field, responseName)
		}
	}

	return nil
}
func verifyResponseFieldNames(expectedFields []string, responseBody []byte, responseName string) error {
	var responseMap map[string]json.RawMessage
	if err := json.Unmarshal(responseBody, &responseMap); err != nil {
		fmt.Errorf("unable to unmarshal %s response to response map", responseName)
	}

	for _, field := range expectedFields {
		if _, ok := responseMap[field]; !ok {
			return fmt.Errorf("missing field '%s' in %s response", field, responseName)
		}
	}

	return nil
}
func verifyResponseFieldNames ( expectedFields [ ] string , responseBody [ ] byte , responseName string ) error { var responseMap map [ string ] json . RawMessage if err := json . Unmarshal ( responseBody , & responseMap ) ; err != nil { fmt . Errorf ( " " , responseName ) } for _ , field := range expectedFields { if _ , ok := responseMap [ field ] ; ! ok { return fmt . Errorf ( " " , field , responseName ) } } return nil }
// verify all the field names in the response are what we expected. this is needed because a direct unmarshal
// is not case sensitive so can't ensure that the response is in valid format
verify all the field names in the response are what we expected . this is needed because a direct unmarshal is not case sensitive so can t ensure that the response is in valid format