diff --git a/src/tag.test.ts b/src/tag.test.ts new file mode 100644 index 0000000..f21998c --- /dev/null +++ b/src/tag.test.ts @@ -0,0 +1,17 @@ +import Tag from './tag'; + +describe('Tag.isTag', function () { + it('should detect when value is not a tag', () => { + expect(Tag.isTag(undefined)).toBe(false); + expect(Tag.isTag(null)).toBe(false); + expect(Tag.isTag('')).toBe(false); + expect(Tag.isTag(8)).toBe(false); + expect(Tag.isTag(true)).toBe(false); + expect(Tag.isTag([])).toBe(false); + expect(Tag.isTag({ my: 'object' })).toBe(false); + }); + + it('should detect tags', () => { + expect(Tag.isTag(new Tag('tag', {}, []))).toBe(true); + }); +}); diff --git a/src/tag.ts b/src/tag.ts index 1440d84..3d027bf 100644 --- a/src/tag.ts +++ b/src/tag.ts @@ -7,7 +7,7 @@ export default class Tag< readonly $$mdtype = 'Tag' as const; static isTag = (tag: any): tag is Tag => { - return '$$mdtype' in tag && tag.$$mdtype === 'Tag'; + return !!(tag?.$$mdtype === 'Tag'); }; name: N;