waveterm/frontend/layout/tests/utils.test.ts
2024-07-23 13:50:23 -07:00

114 lines
2.2 KiB
TypeScript

// Copyright 2024, Command Line Inc.
// SPDX-License-Identifier: Apache-2.0
import { assert, test } from "vitest";
import {
Dimensions,
DropDirection,
FlexDirection,
determineDropDirection,
reverseFlexDirection,
} from "../lib/utils.js";
test("determineDropDirection", () => {
const dimensions: Dimensions = {
top: 0,
left: 0,
height: 5,
width: 5,
};
assert.equal(
determineDropDirection(dimensions, {
x: 2.5,
y: 1.5,
}),
DropDirection.Top
);
assert.equal(
determineDropDirection(dimensions, {
x: 2.5,
y: 3.5,
}),
DropDirection.Bottom
);
assert.equal(
determineDropDirection(dimensions, {
x: 3.5,
y: 2.5,
}),
DropDirection.Right
);
assert.equal(
determineDropDirection(dimensions, {
x: 1.5,
y: 2.5,
}),
DropDirection.Left
);
assert.equal(
determineDropDirection(dimensions, {
x: 2.5,
y: 0.5,
}),
DropDirection.OuterTop
);
assert.equal(
determineDropDirection(dimensions, {
x: 4.5,
y: 2.5,
}),
DropDirection.OuterRight
);
assert.equal(
determineDropDirection(dimensions, {
x: 2.5,
y: 4.5,
}),
DropDirection.OuterBottom
);
assert.equal(
determineDropDirection(dimensions, {
x: 0.5,
y: 2.5,
}),
DropDirection.OuterLeft
);
assert.equal(
determineDropDirection(dimensions, {
x: 2.5,
y: 2.5,
}),
DropDirection.Center
);
assert.equal(
determineDropDirection(dimensions, {
x: 2.51,
y: 2.51,
}),
DropDirection.Center
);
assert.equal(
determineDropDirection(dimensions, {
x: 1.5,
y: 1.5,
}),
undefined
);
});
test("reverseFlexDirection", () => {
assert.equal(reverseFlexDirection(FlexDirection.Row), FlexDirection.Column);
assert.equal(reverseFlexDirection(FlexDirection.Column), FlexDirection.Row);
});