123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import * as _ from "lodash";
- import {
- NodeCreation,
- NodeDeletion,
- } from "./primitive_delta";
- import {
- CompositeLevel,
- } from "./composite_delta";
- import {
- mockUuid,
- assert,
- } from "./test_helpers";
- describe("Composite delta", () => {
- it("Dependency", () => {
- const getId = mockUuid();
- const level = new CompositeLevel();
- const nodeCreation = new NodeCreation(getId());
- const composite1 = level.createComposite([nodeCreation]);
- assert(_.isEqual(composite1.getDependencies(), []), "expected composite1 to have no dependencies");
- const nodeDeletion = new NodeDeletion(nodeCreation, [], []);
- const nodeCreation2 = new NodeCreation(getId());
- const composite2 = level.createComposite([nodeDeletion, nodeCreation2]);
- assert(_.isEqual(composite2.getDependencies(), [composite1]), "expected composite2 to depend on composite 1");
- });
- it("Conflict", () => {
- const getId = mockUuid();
- const level = new CompositeLevel();
- const nodeCreation = new NodeCreation(getId());
- const compositeCreate = level.createComposite([nodeCreation]);
- const nodeDeletion1 = new NodeDeletion(nodeCreation, [], []);
- const compositeDelete1 = level.createComposite([nodeDeletion1]);
- assert(_.isEqual(compositeDelete1.getConflicts(), []), "there should not yet be a conflict")
- const nodeDeletion2 = new NodeDeletion(nodeCreation, [], []);
- const compositeDelete2 = level.createComposite([nodeDeletion2]);
- assert(_.isEqual(compositeDelete1.getConflicts(), [compositeDelete2]), "expected compositeDelete1 to conflict with compositeDelete2");
- assert(_.isEqual(compositeDelete2.getConflicts(), [compositeDelete1]), "expected compositeDelete1 to conflict with compositeDelete2");
- });
- // This was added after I found a bug:
- it("Dependency within composite", () => {
- const getId = mockUuid();
- const level = new CompositeLevel();
- const nodeCreation = new NodeCreation(getId());
- const nodeDeletion = new NodeDeletion(nodeCreation, [], []);
- const composite = level.createComposite([nodeCreation, nodeDeletion]);
- assert(_.isEqual(composite.getDependencies(), []), "expected composite to have no dependencies");
- assert(_.isEqual(composite.getConflicts(), []), "expected composite to have no conflicts");
- });
- });
|