fixed closure-table failing tests

This commit is contained in:
Salim Benabbou 2017-06-22 11:09:34 +00:00
parent 8d9083bbb9
commit 2919b8530d
4 changed files with 27 additions and 27 deletions

View File

@ -44,7 +44,7 @@ export class ClosureJunctionEntityMetadataBuilder {
args: {
target: "",
mode: "virtual",
propertyName: "ancestor_" + primaryColumn.databaseName, // todo: naming strategy
propertyName: "ancestor", // todo: naming strategy
options: {
length: primaryColumn.length,
type: primaryColumn.type,
@ -57,7 +57,7 @@ export class ClosureJunctionEntityMetadataBuilder {
args: {
target: "",
mode: "virtual",
propertyName: "descendant_" + primaryColumn.databaseName,
propertyName: "descendant",
options: {
length: primaryColumn.length,
type: primaryColumn.type,
@ -101,4 +101,4 @@ export class ClosureJunctionEntityMetadataBuilder {
return entityMetadata;
}
}
}

View File

@ -1,15 +1,15 @@
import {ObjectLiteral} from "../common/ObjectLiteral";
import {EntityMetadata} from "../metadata/EntityMetadata";
import {Connection} from "../connection/Connection";
import {QueryRunner} from "../query-runner/QueryRunner";
import {JunctionInsert, JunctionRemove, Subject} from "./Subject";
import {OrmUtils} from "../util/OrmUtils";
import {EntityManager} from "../entity-manager/EntityManager";
import {PromiseUtils} from "../util/PromiseUtils";
import {MongoDriver} from "../driver/mongodb/MongoDriver";
import {ColumnMetadata} from "../metadata/ColumnMetadata";
import {EmbeddedMetadata} from "../metadata/EmbeddedMetadata";
import {Broadcaster} from "../subscriber/Broadcaster";
import { ObjectLiteral } from "../common/ObjectLiteral";
import { EntityMetadata } from "../metadata/EntityMetadata";
import { Connection } from "../connection/Connection";
import { QueryRunner } from "../query-runner/QueryRunner";
import { JunctionInsert, JunctionRemove, Subject } from "./Subject";
import { OrmUtils } from "../util/OrmUtils";
import { EntityManager } from "../entity-manager/EntityManager";
import { PromiseUtils } from "../util/PromiseUtils";
import { MongoDriver } from "../driver/mongodb/MongoDriver";
import { ColumnMetadata } from "../metadata/ColumnMetadata";
import { EmbeddedMetadata } from "../metadata/EmbeddedMetadata";
import { Broadcaster } from "../subscriber/Broadcaster";
/**
* Executes all database operations (inserts, updated, deletes) that must be executed
@ -51,8 +51,8 @@ export class SubjectOperationExecutor {
// -------------------------------------------------------------------------
constructor(protected connection: Connection,
protected transactionEntityManager: EntityManager,
protected queryRunner: QueryRunner) {
protected transactionEntityManager: EntityManager,
protected queryRunner: QueryRunner) {
}
// -------------------------------------------------------------------------
@ -673,7 +673,7 @@ export class SubjectOperationExecutor {
});
if (parentSubject) {
parentEntityId = referencedColumn.getEntityValue(parentSubject);
parentEntityId = referencedColumn.getEntityValue(parentSubject.entity);
if (!parentEntityId && parentSubject.newlyGeneratedId) { // if still not found then it means parent just inserted with generated column
parentEntityId = parentSubject.newlyGeneratedId;
}
@ -1059,4 +1059,4 @@ export class SubjectOperationExecutor {
});
}
}
}

View File

@ -1,6 +1,6 @@
import {Repository} from "./Repository";
import {QueryBuilder} from "../query-builder/QueryBuilder";
import {SelectQueryBuilder} from "../query-builder/SelectQueryBuilder";
import { Repository } from "./Repository";
import { QueryBuilder } from "../query-builder/QueryBuilder";
import { SelectQueryBuilder } from "../query-builder/SelectQueryBuilder";
/**
* Repository with additional functions to work with trees.
@ -35,7 +35,7 @@ export class TreeRepository<Entity> extends Repository<Entity> {
const parentPropertyName = this.metadata.treeParentRelation!.propertyName;
return this.createQueryBuilder("treeEntity")
.where(`treeEntity.${parentPropertyName} IS NULL`)
.where(`treeEntity.${parentPropertyName}Id IS NULL`)
.getMany();
}
@ -150,7 +150,7 @@ export class TreeRepository<Entity> extends Repository<Entity> {
return rawResults.map(rawResult => {
return {
id: rawResult[alias + "_" + this.metadata.primaryColumns[0].databaseName],
parentId: rawResult[alias + "_" + this.metadata.treeParentRelation!.joinColumns[0].referencedColumn!.databaseName]
parentId: rawResult[alias + "_" + this.metadata.treeParentRelation!.joinColumns[0].givenDatabaseName]
};
});
}
@ -160,7 +160,7 @@ export class TreeRepository<Entity> extends Repository<Entity> {
const parentEntityId = this.metadata.primaryColumns[0].getEntityValue(entity);
const childRelationMaps = relationMaps.filter(relationMap => relationMap.parentId === parentEntityId);
const childIds = childRelationMaps.map(relationMap => relationMap.id);
entity[childProperty] = entities.filter(entity => childIds.indexOf(this.metadata.primaryColumns[0].getEntityValue(entity)) !== -1);
entity[childProperty] = entities.filter(entity => childIds.indexOf(entity.id) !== -1);
entity[childProperty].forEach((childEntity: any) => {
this.buildChildrenEntityTree(childEntity, entities, relationMaps);
});
@ -182,4 +182,4 @@ export class TreeRepository<Entity> extends Repository<Entity> {
}
}
}
}

View File

@ -4,7 +4,7 @@ import {Connection} from "../../../../src/connection/Connection";
import {createTestingConnections, reloadTestingDatabases, closeTestingConnections} from "../../../utils/test-utils";
// fix closure tables later
describe.skip("closure-table", () => {
describe("closure-table", () => {
let connections: Connection[];
before(async () => connections = await createTestingConnections({