diff --git a/jest.config.js b/jest.config.js index a819ec9..0f74cab 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,5 +3,5 @@ const base = require('./jest.config.base'); module.exports = { ...base, roots: [''], - projects: ['/packages/generator', '/packages/reflect', '/packages/parser'], + projects: ['/packages/mockingbird', '/packages/reflect', '/packages/parser'], }; diff --git a/packages/generator/src/lib/index.ts b/packages/generator/src/lib/index.ts deleted file mode 100644 index d389545..0000000 --- a/packages/generator/src/lib/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './mock-factory'; -export * from './builder'; diff --git a/packages/generator/.eslintignore b/packages/mockingbird/.eslintignore similarity index 100% rename from packages/generator/.eslintignore rename to packages/mockingbird/.eslintignore diff --git a/packages/generator/.eslintrc b/packages/mockingbird/.eslintrc similarity index 100% rename from packages/generator/.eslintrc rename to packages/mockingbird/.eslintrc diff --git a/packages/generator/CHANGELOG.md b/packages/mockingbird/CHANGELOG.md similarity index 100% rename from packages/generator/CHANGELOG.md rename to packages/mockingbird/CHANGELOG.md diff --git a/packages/generator/README.md b/packages/mockingbird/README.md similarity index 100% rename from packages/generator/README.md rename to packages/mockingbird/README.md diff --git a/packages/generator/index.d.ts b/packages/mockingbird/index.d.ts similarity index 100% rename from packages/generator/index.d.ts rename to packages/mockingbird/index.d.ts diff --git a/packages/generator/index.js b/packages/mockingbird/index.js similarity index 100% rename from packages/generator/index.js rename to packages/mockingbird/index.js diff --git a/packages/generator/jest.config.js b/packages/mockingbird/jest.config.js similarity index 100% rename from packages/generator/jest.config.js rename to packages/mockingbird/jest.config.js diff --git a/packages/generator/package.json b/packages/mockingbird/package.json similarity index 100% rename from packages/generator/package.json rename to packages/mockingbird/package.json diff --git a/packages/generator/src/index.ts b/packages/mockingbird/src/index.ts similarity index 100% rename from packages/generator/src/index.ts rename to packages/mockingbird/src/index.ts diff --git a/packages/generator/src/lib/builder/index.ts b/packages/mockingbird/src/lib/builder/index.ts similarity index 100% rename from packages/generator/src/lib/builder/index.ts rename to packages/mockingbird/src/lib/builder/index.ts diff --git a/packages/generator/src/lib/builder/mock-builder.test.ts b/packages/mockingbird/src/lib/builder/mock-builder.test.ts similarity index 100% rename from packages/generator/src/lib/builder/mock-builder.test.ts rename to packages/mockingbird/src/lib/builder/mock-builder.test.ts diff --git a/packages/generator/src/lib/builder/mock-builder.ts b/packages/mockingbird/src/lib/builder/mock-builder.ts similarity index 54% rename from packages/generator/src/lib/builder/mock-builder.ts rename to packages/mockingbird/src/lib/builder/mock-builder.ts index f7fa810..99403ff 100644 --- a/packages/generator/src/lib/builder/mock-builder.ts +++ b/packages/mockingbird/src/lib/builder/mock-builder.ts @@ -4,11 +4,66 @@ import { MockProducer } from './mock-producer'; import { MockGenerator } from '../generator/mock-generator'; export interface MockBuilder { + /** + * Sets the faker locale inside the MockBuilder, thus, all the mocks that + * will be generated from the builder will be affected from this setting + * and will get applied by it + * + * @example + * MockFactory(Bird).setLocale('es').one() + * + * @param locale {string} + * @returns {this} the actual same builder + */ setLocale(locale: string): this; + + /** + * Convert the result into plain object. If the result will be array + * (using .many()), then all of items in the array will be converted + * into plain objects + * + * @example + * MockFactory(Bird).plain().one() + * + * @returns {this} the same builder + */ plain(): this; - mutate(overrides: Mutations): Omit, 'mutate'>; + + /** + * Mutates the generated mock(s). + * .mutate() method enables to set another value for a specific property + * + * @example + * MockFactory(Bird).mutate({ name: 'some-permanent-name' }).one() + * + * @param mutations {Mutations} + */ + mutate(mutations: Mutations): Omit, 'mutate'>; + + /** + * Ignore/Omit some properties when from the generated mock(s). + * Using this method will simply omit the given keys + * + * @example + * MockFactory(Bird).ignore('name').one() + * + * @param keys + * @returns {MockBuilder} + */ ignore(...keys: IgnoreKeys): this; + + /** + * Creates exactly one mock from the target class + * + * @returns {TClass | Object} + */ one(): TClass; + + /** + * Creates many mocks from the target class. + * + * @param count {number} How many mocks to create + */ many(count: number): TClass[]; } @@ -38,8 +93,8 @@ export class MockBuilder extends MockProducer { return this; } - public mutate(overrides: Mutations): Omit, 'mutate'> { - this.mutations = overrides; + public mutate(mutations: Mutations): Omit, 'mutate'> { + this.mutations = mutations; return this; } diff --git a/packages/generator/src/lib/builder/mock-producer.ts b/packages/mockingbird/src/lib/builder/mock-producer.ts similarity index 100% rename from packages/generator/src/lib/builder/mock-producer.ts rename to packages/mockingbird/src/lib/builder/mock-producer.ts diff --git a/packages/generator/src/lib/builder/types.ts b/packages/mockingbird/src/lib/builder/types.ts similarity index 100% rename from packages/generator/src/lib/builder/types.ts rename to packages/mockingbird/src/lib/builder/types.ts diff --git a/packages/generator/src/lib/mock-factory.ts b/packages/mockingbird/src/lib/factory/mock-factory.ts similarity index 52% rename from packages/generator/src/lib/mock-factory.ts rename to packages/mockingbird/src/lib/factory/mock-factory.ts index e47f3ce..be34d55 100644 --- a/packages/generator/src/lib/mock-factory.ts +++ b/packages/mockingbird/src/lib/factory/mock-factory.ts @@ -1,9 +1,17 @@ import { Faker, Class } from '@mockinbird/types'; import { ClassParser } from '@mockinbird/parser'; import { ClassReflector } from '@mockinbird/reflect'; -import { MockBuilder } from './builder'; -import { MockGenerator } from './generator/mock-generator'; +import { MockBuilder } from '../builder'; +import { MockGenerator } from '../generator/mock-generator'; +/** + * MockFactory take the target class as a parameter and returns + * a MockBuilder which enables to chain some methods and compose + * a new mock or mocks. + * + * @param target {Class} the class to create mock(s) from + * @returns {MockBuilder} new builder to compose a mock + */ export function MockFactory(target: Class): MockBuilder { const reflector = new ClassReflector(); const parser = new ClassParser(Faker, reflector); diff --git a/packages/generator/src/lib/generator/mock-generator.test.ts b/packages/mockingbird/src/lib/generator/mock-generator.test.ts similarity index 100% rename from packages/generator/src/lib/generator/mock-generator.test.ts rename to packages/mockingbird/src/lib/generator/mock-generator.test.ts diff --git a/packages/generator/src/lib/generator/mock-generator.ts b/packages/mockingbird/src/lib/generator/mock-generator.ts similarity index 97% rename from packages/generator/src/lib/generator/mock-generator.ts rename to packages/mockingbird/src/lib/generator/mock-generator.ts index 0780ee1..c46a48a 100644 --- a/packages/generator/src/lib/generator/mock-generator.ts +++ b/packages/mockingbird/src/lib/generator/mock-generator.ts @@ -28,7 +28,8 @@ export class MockGenerator { * class Person { @Mock() name: string } * MockGenerator.create(Person) will return an object { name: } * - * @param targetClass + * @param targetClass {Class} + * @returns {TClass} */ public create(targetClass: Class): TClass; diff --git a/packages/mockingbird/src/lib/index.ts b/packages/mockingbird/src/lib/index.ts new file mode 100644 index 0000000..da8aa47 --- /dev/null +++ b/packages/mockingbird/src/lib/index.ts @@ -0,0 +1,2 @@ +export * from './factory/mock-factory'; +export * from './builder'; diff --git a/packages/generator/src/types/mock-decorator-factory-options.interface.ts b/packages/mockingbird/src/types/mock-decorator-factory-options.interface.ts similarity index 100% rename from packages/generator/src/types/mock-decorator-factory-options.interface.ts rename to packages/mockingbird/src/types/mock-decorator-factory-options.interface.ts diff --git a/packages/generator/src/types/mock-generator-options.interface.ts b/packages/mockingbird/src/types/mock-generator-options.interface.ts similarity index 100% rename from packages/generator/src/types/mock-generator-options.interface.ts rename to packages/mockingbird/src/types/mock-generator-options.interface.ts diff --git a/packages/generator/test/e2e/__snapshots__/mock-factory.test.ts.snap b/packages/mockingbird/test/e2e/__snapshots__/mock-factory.test.ts.snap similarity index 100% rename from packages/generator/test/e2e/__snapshots__/mock-factory.test.ts.snap rename to packages/mockingbird/test/e2e/__snapshots__/mock-factory.test.ts.snap diff --git a/packages/generator/test/e2e/mock-factory.test.ts b/packages/mockingbird/test/e2e/mock-factory.test.ts similarity index 100% rename from packages/generator/test/e2e/mock-factory.test.ts rename to packages/mockingbird/test/e2e/mock-factory.test.ts diff --git a/packages/generator/test/e2e/test-classes.ts b/packages/mockingbird/test/e2e/test-classes.ts similarity index 100% rename from packages/generator/test/e2e/test-classes.ts rename to packages/mockingbird/test/e2e/test-classes.ts diff --git a/packages/generator/test/integration/__snapshots__/mock-generator.test.ts.snap b/packages/mockingbird/test/integration/__snapshots__/mock-generator.test.ts.snap similarity index 100% rename from packages/generator/test/integration/__snapshots__/mock-generator.test.ts.snap rename to packages/mockingbird/test/integration/__snapshots__/mock-generator.test.ts.snap diff --git a/packages/generator/test/integration/common/test-classes.ts b/packages/mockingbird/test/integration/common/test-classes.ts similarity index 100% rename from packages/generator/test/integration/common/test-classes.ts rename to packages/mockingbird/test/integration/common/test-classes.ts diff --git a/packages/generator/test/integration/mock-generator.test.ts b/packages/mockingbird/test/integration/mock-generator.test.ts similarity index 100% rename from packages/generator/test/integration/mock-generator.test.ts rename to packages/mockingbird/test/integration/mock-generator.test.ts diff --git a/packages/generator/tsconfig.json b/packages/mockingbird/tsconfig.json similarity index 100% rename from packages/generator/tsconfig.json rename to packages/mockingbird/tsconfig.json diff --git a/tsconfig.json b/tsconfig.json index 3ed32d0..d648619 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -41,7 +41,7 @@ "path": "packages/parser" }, { - "path": "packages/generator" + "path": "packages/mockingbird" } ] }