Entities tests fixed

This commit is contained in:
barsdeveloper
2024-06-04 22:54:16 +02:00
parent e16822760f
commit 6ca966e176
22 changed files with 216 additions and 311 deletions

View File

@@ -2,6 +2,7 @@ import AlternativesEntity from "../../js/entity/AlternativesEntity.js"
import ArrayEntity from "../../js/entity/ArrayEntity.js"
import BooleanEntity from "../../js/entity/BooleanEntity.js"
import IEntity from "../../js/entity/IEntity.js"
import NullEntity from "../../js/entity/NullEntity.js"
import NumberEntity from "../../js/entity/NumberEntity.js"
import StringEntity from "../../js/entity/StringEntity.js"
import Entity1 from "./Entity1.js"
@@ -9,15 +10,20 @@ import Entity2 from "./Entity2.js"
export default class Entity3 extends IEntity {
static attributeSeparator = "\n"
static keySeparator = ": "
static printKey = k => ` ${k}`
static wrap = (entity, v) => `[[\n${v}\n]]`
static attributes = {
...super.attributes,
alpha: NumberEntity.withDefault(type => new type(32)),
bravo: NumberEntity.withDefault(type => new type(78)),
charlie: StringEntity.withDefault(type => new type("Charlie")),
delta: StringEntity.withDefault(type => null),
delta: StringEntity.withDefault(type => new NullEntity()),
echo: StringEntity.withDefault(type => new type("echo")),
foxtrot: BooleanEntity.withDefault(),
golf: ArrayEntity.of(StringEntity).withDefault(),
hotel: ArrayEntity.of(NumberEntity).withDefault(() => null),
hotel: ArrayEntity.of(NumberEntity).withDefault(() => new NullEntity()),
india: ArrayEntity.of(NumberEntity).withDefault(),
juliett: ArrayEntity.of(StringEntity).withDefault(type => new type([
new StringEntity("a"),
@@ -34,11 +40,18 @@ export default class Entity3 extends IEntity {
new BooleanEntity(true),
])),
lima: StringEntity,
mike: AlternativesEntity.accepting(NumberEntity, StringEntity, ArrayEntity).withDefault(type => new StringEntity("Bar")),
november: AlternativesEntity.accepting(NumberEntity, StringEntity, ArrayEntity).withDefault(type => new NumberEntity(0)),
oscar: Entity1.withDefault(type => new type()),
papa: Entity1.withDefault(type => new type({ a: 12, b: 13 })),
quebec: NumberEntity.withDefault(), // will assign undefined because it does not satisfy the predicate,
mike: AlternativesEntity
.accepting(NumberEntity, StringEntity, ArrayEntity)
.withDefault(type => new StringEntity("Bar")),
november: AlternativesEntity
.accepting(NumberEntity, StringEntity, ArrayEntity)
.withDefault(type => new NumberEntity(0)),
oscar: Entity1.withDefault(),
papa: Entity1.withDefault(type => new type({
a: new NumberEntity(12),
b: new NumberEntity(13),
})),
quebec: NumberEntity,
romeo: Entity1.withDefault().flagInlined(),
sierra: Entity2.withDefault().flagInlined(),
}