Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

[![GitHub](https://img.shields.io/github/license/RealShadowNova/typedoc-json-parser)](https://github.com/RealShadowNova/typedoc-json-parserblob/main/LICENSE.md)
[![npm](https://img.shields.io/npm/v/typedoc-json-parser?color=crimson&logo=npm&style=flat-square)](https://www.npmjs.com/package/typedoc-json-parser)
[![codecov](https://codecov.io/gh/RealShadowNova/typedoc-json-parser/branch/main/graph/badge.svg?token=JnJcjxqT3k)](https://codecov.io/gh/RealShadowNova/typedoc-json-parser)

[![Support Server](https://discord.com/api/guilds/554742955898961930/embed.png?style=banner2)](https://discord.gg/fERY6AenEv)

Expand Down
13 changes: 13 additions & 0 deletions tests/lib/structures/FunctionParser.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { FunctionParser } from '../../../src/';

describe('FunctionParser', () => {
describe('is a class', () => {
test('GIVEN typeof FunctionParser THEN returns function', () => {
expect(typeof FunctionParser).toBe('function');
});

test('GIVEN typeof ...prototype THEN returns object', () => {
expect(typeof FunctionParser.prototype).toBe('object');
});
});
});
13 changes: 13 additions & 0 deletions tests/lib/structures/NamespaceParser.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { NamespaceParser } from '../../../src/';

describe('NamespaceParser', () => {
describe('is a class', () => {
test('GIVEN typeof NamespaceParser THEN returns function', () => {
expect(typeof NamespaceParser).toBe('function');
});

test('GIVEN typeof ...prototype THEN returns object', () => {
expect(typeof NamespaceParser.prototype).toBe('object');
});
});
});
13 changes: 13 additions & 0 deletions tests/lib/structures/TypeAliasParser.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { TypeAliasParser } from '../../../src/';

describe('TypeAliasParser', () => {
describe('is a class', () => {
test('GIVEN typeof TypeAliasParser THEN returns function', () => {
expect(typeof TypeAliasParser).toBe('function');
});

test('GIVEN typeof ...prototype THEN returns object', () => {
expect(typeof TypeAliasParser.prototype).toBe('object');
});
});
});
13 changes: 13 additions & 0 deletions tests/lib/structures/VariableParser.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { VariableParser } from '../../../src/';

describe('VariableParser', () => {
describe('is a class', () => {
test('GIVEN typeof VariableParser THEN returns function', () => {
expect(typeof VariableParser).toBe('function');
});

test('GIVEN typeof ...prototype THEN returns object', () => {
expect(typeof VariableParser.prototype).toBe('object');
});
});
});
197 changes: 197 additions & 0 deletions tests/lib/structures/class-parser/ClassConstructorParser.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
import type { JSONOutput } from 'typedoc';
import { ClassConstructorParser, ClassParser } from '../../../../src/';
import { commentJson, commentReflection } from '../misc/CommentParser.test';
import { parameterJson } from '../misc/ParameterParser.test';
import { signatureReflection } from '../misc/SignatureParser.test';
import { sourceJson, sourceReflection } from '../misc/SourceParser.test';

export const classConstructorReflection: JSONOutput.DeclarationReflection = {
id: 1,
name: 'constructor',
kind: 512,
variant: 'declaration',
flags: { isPublic: true },
comment: commentReflection,
sources: [sourceReflection],
signatures: [{ ...signatureReflection, kind: 16384 }]
};

export const classConstructorJson: ClassConstructorParser.Json = {
id: 1,
name: 'constructor',
source: sourceJson,
comment: commentJson,
parentId: 2,
accessibility: ClassParser.Accessibility.Public,
parameters: [parameterJson]
};

describe('ClassConstructorParser', () => {
describe('is a class', () => {
test('GIVEN typeof ClassConstructorParser THEN returns function', () => {
expect(typeof ClassConstructorParser).toBe('function');
});

test('GIVEN typeof ...prototype THEN returns object', () => {
expect(typeof ClassConstructorParser.prototype).toBe('object');
});
});

describe('can create instance', () => {
describe('generateFromTypeDoc', () => {
test('GIVEN classConstructorReflection THEN returns classConstructorJson', () => {
expect(ClassConstructorParser.generateFromTypeDoc(classConstructorReflection, classConstructorJson.parentId)).toEqual(classConstructorJson);
});

const parser = ClassConstructorParser.generateFromTypeDoc(classConstructorReflection, classConstructorJson.parentId);

describe('properties', () => {
describe('id', () => {
test('GIVEN ClassConstructorParser#id THEN returns id', () => {
expect(parser.id).toBe(classConstructorJson.id);
});
});

describe('name', () => {
test('GIVEN ClassConstructorParser#name THEN returns name', () => {
expect(parser.name).toBe(classConstructorJson.name);
});
});

describe('source', () => {
test('GIVEN ClassConstructorParser#source THEN returns source', () => {
expect(parser.source).toEqual(classConstructorJson.source);
});
});

describe('comment', () => {
test('GIVEN ClassConstructorParser#comment THEN returns comment', () => {
expect(parser.comment).toEqual(classConstructorJson.comment);
});
});

describe('parentId', () => {
test('GIVEN ClassConstructorParser#parentId THEN returns parentId', () => {
expect(parser.parentId).toBe(classConstructorJson.parentId);
});
});

describe('accessibility', () => {
test('GIVEN ClassConstructorParser#accessibility THEN returns accessibility', () => {
expect(parser.accessibility).toBe(classConstructorJson.accessibility);
});
});

describe('parameters', () => {
test('GIVEN ClassConstructorParser#parameters THEN returns parameters', () => {
expect(parser.parameters).toEqual(classConstructorJson.parameters);
});
});
});

describe('methods', () => {
describe('isPublic', () => {
test('GIVEN ClassConstructorParser#isPublic THEN returns true', () => {
expect(parser.isPublic()).toBe(true);
});
});

describe('isProtected', () => {
test('GIVEN ClassConstructorParser#isProtected THEN returns false', () => {
expect(parser.isProtected()).toBe(false);
});
});

describe('isPrivate', () => {
test('GIVEN ClassConstructorParser#isPrivate THEN returns false', () => {
expect(parser.isPrivate()).toBe(false);
});
});

describe('toJSON', () => {
test('GIVEN ClassConstructorParser#toJSON THEN returns classConstructorJson', () => {
expect(parser.toJSON()).toEqual(classConstructorJson);
});
});
});
});

describe('generateFromJson', () => {
test('GIVEN classConstructorJson THEN returns ClassConstructorParser', () => {
expect(ClassConstructorParser.generateFromJson(classConstructorJson)).toBeInstanceOf(ClassConstructorParser);
});

const parser = ClassConstructorParser.generateFromJson(classConstructorJson);

describe('properties', () => {
describe('id', () => {
test('GIVEN ClassConstructorParser#id THEN returns id', () => {
expect(parser.id).toBe(classConstructorJson.id);
});
});

describe('name', () => {
test('GIVEN ClassConstructorParser#name THEN returns name', () => {
expect(parser.name).toBe(classConstructorJson.name);
});
});

describe('source', () => {
test('GIVEN ClassConstructorParser#source THEN returns source', () => {
expect(parser.source).toEqual(classConstructorJson.source);
});
});

describe('comment', () => {
test('GIVEN ClassConstructorParser#comment THEN returns comment', () => {
expect(parser.comment).toEqual(classConstructorJson.comment);
});
});

describe('parentId', () => {
test('GIVEN ClassConstructorParser#parentId THEN returns parentId', () => {
expect(parser.parentId).toBe(classConstructorJson.parentId);
});
});

describe('accessibility', () => {
test('GIVEN ClassConstructorParser#accessibility THEN returns accessibility', () => {
expect(parser.accessibility).toBe(classConstructorJson.accessibility);
});
});

describe('parameters', () => {
test('GIVEN ClassConstructorParser#parameters THEN returns parameters', () => {
expect(parser.parameters).toEqual(classConstructorJson.parameters);
});
});
});

describe('methods', () => {
describe('isPublic', () => {
test('GIVEN ClassConstructorParser#isPublic THEN returns true', () => {
expect(parser.isPublic()).toBe(true);
});
});

describe('isProtected', () => {
test('GIVEN ClassConstructorParser#isProtected THEN returns false', () => {
expect(parser.isProtected()).toBe(false);
});
});

describe('isPrivate', () => {
test('GIVEN ClassConstructorParser#isPrivate THEN returns false', () => {
expect(parser.isPrivate()).toBe(false);
});
});

describe('toJSON', () => {
test('GIVEN ClassConstructorParser#toJSON THEN returns classConstructorJson', () => {
expect(parser.toJSON()).toEqual(classConstructorJson);
});
});
});
});
});
});
Loading