43 lines
1,018 B
TypeScript
43 lines
1,018 B
TypeScript
import test from "ava";
|
|
import { ObjectAliasError, validateNoObjectAliases } from "./validateNoObjectAliases";
|
|
|
|
test("validateNoObjectAliases() disallows object aliases at top level", t => {
|
|
const obj: any = {
|
|
objectRef: {
|
|
foo: "bar",
|
|
},
|
|
};
|
|
obj.otherProp = obj.objectRef;
|
|
|
|
t.throws(() => validateNoObjectAliases(obj), { instanceOf: ObjectAliasError });
|
|
});
|
|
|
|
test("validateNoObjectAliases() disallows aliases to nested objects", t => {
|
|
const obj: any = {
|
|
nested: {
|
|
objectRef: {
|
|
foo: "bar",
|
|
},
|
|
},
|
|
};
|
|
obj.otherProp = obj.nested.objectRef;
|
|
|
|
t.throws(() => validateNoObjectAliases(obj), { instanceOf: ObjectAliasError });
|
|
});
|
|
|
|
test("validateNoObjectAliases() disallows nested object aliases", t => {
|
|
const obj: any = {
|
|
nested: {
|
|
objectRef: {
|
|
foo: "bar",
|
|
},
|
|
},
|
|
};
|
|
obj.otherProp = {
|
|
alsoNested: {
|
|
ref: obj.nested.objectRef,
|
|
},
|
|
};
|
|
|
|
t.throws(() => validateNoObjectAliases(obj), { instanceOf: ObjectAliasError });
|
|
});
|