Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
it('can parse from the API returned JSON', () => {
const serializer = new TypedJSON(BcfTopicResource);
const subject = serializer.parse(topic_object)!;
expect(subject).toBeInstanceOf(BcfTopicResource);
['guid', 'topic_type', 'topic_status', 'priority', 'reference_links', 'title',
'index', 'labels', 'creation_author', 'modified_author', 'assigned_to', 'stage',
'description'].forEach((item) => expect((subject as any)[item]).toEqual((topic_object as any)[item]));
// Expect dates
expect(subject.creation_date).toEqual(moment(topic_object.creation_date));
expect(subject.modified_date).toEqual(moment(topic_object.modified_date));
expect(subject.due_date.format('YYYY-MM-DD')).toEqual(topic_object.due_date);
expect(serializer.toPlainJson(subject)).toEqual(topic_object);
});
});
protected deserialize(data:any):T {
if (this.resourceClass) {
const serializer = new TypedJSON(this.resourceClass);
return serializer.parse(data)!;
} else {
return data;
}
}
}
@jsonObject
export class BcfTopicResource {
@jsonMember
guid:string;
@jsonMember
topic_type:string;
@jsonMember
topic_status:string;
@jsonMember
priority:string;
@jsonArrayMember(String)
reference_links:string[];
@jsonMember
title:string;
@jsonMember({ preserveNull: true })
index:number|null;
@jsonArrayMember(String)
labels:string[];
@jsonMember({ deserializer: value => moment(value), serializer: (timestamp:Moment) => timestamp.toISOString() })
creation_date:Moment;
@jsonMember
creation_author:string;
import { jsonArrayMember, jsonObject } from "typedjson";
@jsonObject
export class BcfExtensionResource {
@jsonArrayMember(String)
topic_actions:string[];
@jsonArrayMember(String)
project_actions:string[];
@jsonArrayMember(String)
comment_actions:string[];
}