Skip to content

rvitaliy/typeorm-fixturio

 
 

Repository files navigation

typeorm-fixturio

test Coverage Status npm shield

Installation

yarn add -D typeorm-fixturio

Options

Option Short Type Description
recreate boolean Determines whether to recreate the database
runMigration boolean Determines whether to run the migration
quiet boolean Suppresses console output during execution
autoPersist boolean Automatic entity saving
dataSourceFile -d string Path to the orm data source file
containerFile string Path to the container file
filePatterns string[] Array of fixture patterns to match and process multiple files

For autoPersist flag you don't need to save entities manually you need just return the entities for saving in fixture' s install method. Notice that entity resolver can work only with a flat object and an array returned types. An example

async install(): Promise < UserFixtureResultOf > {
  const tag1 = new Tag('tag_1');
  const tag2 = new Tag('tag_1');

  return {tag1, tag1}
  //or
  return [tag2, tag2]
}

if autoPersist option is disabled the entities have to be saved manually. EntityManager is provided by default(configured from the dataSourceFile option).

import { FixtureInterface } from 'fixturio';
import { EntityManager } from 'typeorm';
import { User } from '../entity/User';

type UserFixtureResultOf = {
    readonly firstUser: User;
};

export class UserFixture implements FixtureInterface<UserFixtureResultOf>, DependencyInjectable {
    constructor(private readonly entityManager: EntityManager) {}

    getInjectDependencies(): readonly InjectDependency[] {
        return [EntityManager];
    }

    async install(): Promise<UserFixtureResultOf> {
        const firstUser = new User(1, 'user_1');

        await this.entityManager.save([firstUser]);

        return {
            firstUser,
        };
    }
}

An example how to run cli command

//package.json
...
"scripts": {
"prepare-database": "node -r ts-node/register -r tsconfig-paths/register ./node_modules/typeorm-fixturio/dist/cli.js -d ormconfig.ts --filePatterns 'tests/fixtures/**/*.ts' --recreate --runMigration"
}
//...

This library is based on https://github.com/pashak09/fixturio

Examples

Examples of usage can be found in examples folder

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.0%
  • JavaScript 6.0%