|
|
@@ -1,68 +1,8 @@
|
|
|
-import { AbstractRepository, EntityManager, Repository } from 'typeorm';
|
|
|
-
|
|
|
import { Type } from '@vendure/common/lib/shared-types';
|
|
|
+import { AbstractRepository, EntityManager, Repository } from 'typeorm';
|
|
|
|
|
|
import { MockClass } from './testing-types';
|
|
|
|
|
|
-/**
|
|
|
- * A mock of the TypeORM Connection class for use in testing.
|
|
|
- */
|
|
|
-export class MockConnection {
|
|
|
- manager: MockEntityManager;
|
|
|
-
|
|
|
- private repositoryMap = new Map<Type<any>, any>();
|
|
|
-
|
|
|
- constructor() {
|
|
|
- this.manager = new MockEntityManager();
|
|
|
- this.manager.connection = this;
|
|
|
- }
|
|
|
-
|
|
|
- registerMockRepository<T extends Type<any>>(entity: T): MockRepository<T> {
|
|
|
- const repository = new MockRepository();
|
|
|
- this.repositoryMap.set(entity, repository);
|
|
|
- return repository;
|
|
|
- }
|
|
|
-
|
|
|
- getRepository<T extends Type<any>>(entity: T): MockRepository<T> {
|
|
|
- const repository = this.repositoryMap.get(entity);
|
|
|
- if (repository) {
|
|
|
- return repository;
|
|
|
- } else {
|
|
|
- throw new Error(
|
|
|
- `No mock repository registered for "${entity.name}". Use registerRepository() first.`,
|
|
|
- );
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-export class MockRepository<T> implements MockClass<Repository<T>> {
|
|
|
- manager: any;
|
|
|
- metadata: any;
|
|
|
- queryRunner: any;
|
|
|
- target: any;
|
|
|
- createQueryBuilder = jest.fn();
|
|
|
- hasId = jest.fn();
|
|
|
- getId = jest.fn();
|
|
|
- create = jest.fn();
|
|
|
- merge = jest.fn();
|
|
|
- preload = jest.fn();
|
|
|
- save = jest.fn();
|
|
|
- remove = jest.fn();
|
|
|
- insert = jest.fn();
|
|
|
- update = jest.fn();
|
|
|
- delete = jest.fn();
|
|
|
- count = jest.fn();
|
|
|
- find = jest.fn();
|
|
|
- findAndCount = jest.fn();
|
|
|
- findByIds = jest.fn();
|
|
|
- findOne = jest.fn();
|
|
|
- findOneOrFail = jest.fn();
|
|
|
- query = jest.fn();
|
|
|
- clear = jest.fn();
|
|
|
- increment = jest.fn();
|
|
|
- decrement = jest.fn();
|
|
|
-}
|
|
|
-
|
|
|
export class MockEntityManager implements MockClass<EntityManager> {
|
|
|
connection: any = {};
|
|
|
queryRunner: any = {};
|
|
|
@@ -79,6 +19,10 @@ export class MockEntityManager implements MockClass<EntityManager> {
|
|
|
insert = jest.fn();
|
|
|
update = jest.fn();
|
|
|
delete = jest.fn();
|
|
|
+ softDelete = jest.fn();
|
|
|
+ softRemove = jest.fn();
|
|
|
+ restore = jest.fn();
|
|
|
+ recover = jest.fn();
|
|
|
count = jest.fn();
|
|
|
find = jest.fn();
|
|
|
findAndCount = jest.fn();
|