UNPKG

@spencejs/spence-factories

Version:

Spence Factories - An opinionated Factory Framework for testing db entities

20 lines (15 loc) 788 B
import {RepoInstance} from "@spencejs/spence-mongo-repos/types/repos/repo"; import {Document} from "@spencejs/spence-mongo-repos/types/types"; export interface Overrides { [key: string]: any } export type GetOrBuildFn = (property: string, valFactory: Factory | GeneratorFn, ...valFactoryArgs: any[]) => Promise<Document | undefined | null> export type BaseFactoryFn = (overrides: () => Overrides, helpers: { getOrBuild: GetOrBuildFn }, rawOverrides: Overrides) => Document export type GeneratorFn = (rawOverrides: Overrides) => Document | Promise<Document>; export type Factory = { name: string; capitalizedName: string; } & { [generatorName: string]: GeneratorFn; }; export function register<T>(name: string, repo: RepoInstance, baseFactory: BaseFactoryFn): Factory;