This PR mainly refactors the code by extracting a "core" package which is then used by the "backend" and "frontend" apps. Apart from this the PR also contains several smaller changes like fixing dependabot, upgrading dependencies, aligned "package.json" files, added tests, ... addresses step 1 of #32 closes #136 --------- Co-authored-by: Marco Pasqualetti <marco.pasqualetti@live.com>
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { flexLayout } from "../src/common/render.js";
|
|
|
|
describe("flexLayout", () => {
|
|
it("should work with row & col layouts", () => {
|
|
const layout = flexLayout({
|
|
items: ["<text>1</text>", "<text>2</text>"],
|
|
gap: 60,
|
|
});
|
|
|
|
expect(layout).toStrictEqual([
|
|
`<g transform="translate(0, 0)"><text>1</text></g>`,
|
|
`<g transform="translate(60, 0)"><text>2</text></g>`,
|
|
]);
|
|
|
|
const columns = flexLayout({
|
|
items: ["<text>1</text>", "<text>2</text>"],
|
|
gap: 60,
|
|
direction: "column",
|
|
});
|
|
|
|
expect(columns).toStrictEqual([
|
|
`<g transform="translate(0, 0)"><text>1</text></g>`,
|
|
`<g transform="translate(0, 60)"><text>2</text></g>`,
|
|
]);
|
|
});
|
|
|
|
it("should work with sizes", () => {
|
|
const layout = flexLayout({
|
|
items: [
|
|
"<text>1</text>",
|
|
"<text>2</text>",
|
|
"<text>3</text>",
|
|
"<text>4</text>",
|
|
],
|
|
gap: 20,
|
|
sizes: [200, 100, 55, 25],
|
|
});
|
|
|
|
expect(layout).toStrictEqual([
|
|
`<g transform="translate(0, 0)"><text>1</text></g>`,
|
|
`<g transform="translate(220, 0)"><text>2</text></g>`,
|
|
`<g transform="translate(340, 0)"><text>3</text></g>`,
|
|
`<g transform="translate(415, 0)"><text>4</text></g>`,
|
|
]);
|
|
});
|
|
});
|