зеркало из https://github.com/microsoft/paris.git
Fixed a bug in modeling, when receiving a sub model as ID with value 0, the value wouldn't get modeled.
This commit is contained in:
Родитель
50aa362b2d
Коммит
b3a4e5719b
|
@ -213,7 +213,7 @@ export class Modeler {
|
|||
entityFieldRawData = defaultValue;
|
||||
}
|
||||
|
||||
if (entityFieldRawData && !(entityFieldRawData instanceof ModelBase)) {
|
||||
if (entityFieldRawData !== undefined && entityFieldRawData !== null && !(entityFieldRawData instanceof ModelBase)) {
|
||||
const fieldData$ = this.getSubModel<TData>(entityField, entityFieldRawData, options);
|
||||
if (fieldData$)
|
||||
return fieldData$;
|
||||
|
|
|
@ -3,6 +3,7 @@ import {EntityModelBase} from "../../lib/config/entity-model.base";
|
|||
import {EntityField} from "../../lib/config/decorators/entity-field.decorator";
|
||||
|
||||
export const todoStatusValues = [
|
||||
{ id: 0, name: 'Pending' },
|
||||
{ id: 1, name: "Open" },
|
||||
{ id: 2, name: "In progress" },
|
||||
{ id: 3, name: "Done" },
|
||||
|
|
|
@ -14,6 +14,7 @@ import {Entity} from "../../lib/config/decorators/entity.decorator";
|
|||
import {EntityModelBase} from "../../lib/config/entity-model.base";
|
||||
import {Repository} from "../../lib/api/repository/repository";
|
||||
import {EntityField} from "../../lib/config/decorators/entity-field.decorator";
|
||||
import {TodoStatus} from "../mock/todo-status.entity";
|
||||
|
||||
describe('Modeler', () => {
|
||||
let paris: Paris;
|
||||
|
@ -96,6 +97,20 @@ describe('Modeler', () => {
|
|||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it("assigns a sub-model that has id === 0 from values", done => {
|
||||
const todoRawData = {
|
||||
id: 6,
|
||||
text: 'Pending...',
|
||||
time: 1534433193347,
|
||||
status: 0
|
||||
};
|
||||
|
||||
paris.modeler.modelEntity(todoRawData, todoEntityConfig).subscribe(todoItem => {
|
||||
expect(todoItem.status).toBeInstanceOf(TodoStatus);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('model configuration', () => {
|
||||
|
|
Загрузка…
Ссылка в новой задаче