36 wiersze
1.1 KiB
TypeScript
36 wiersze
1.1 KiB
TypeScript
import {
|
|
ColorPacker,
|
|
serializeMandalaDesign,
|
|
deserializeMandalaDesign,
|
|
} from "./serialization";
|
|
import { MANDALA_DESIGN_DEFAULTS } from "./core";
|
|
|
|
describe("AvroColorConverter", () => {
|
|
it("converts strings to numbers", () => {
|
|
expect(ColorPacker.pack("#abcdef")).toEqual(0xabcdef);
|
|
});
|
|
|
|
it("converts numbers to strings", () => {
|
|
expect(ColorPacker.unpack(0xabcdef)).toEqual("#abcdef");
|
|
});
|
|
});
|
|
|
|
describe("Mandala design serialization/desrialization", () => {
|
|
// Helper to make it easy for us to copy/paste from URLs.
|
|
const decodeAndDeserialize = (s: string) =>
|
|
deserializeMandalaDesign(decodeURIComponent(s));
|
|
|
|
it("deserializes from v1", () => {
|
|
const design = decodeAndDeserialize(
|
|
"AgZleWUAAB9DCAEAAIA%2FAAAAAAAAgD8AAAAAAADQlAKCjj3Ij%2F4PAACAPwAAQEABAA%3D%3D"
|
|
);
|
|
expect(design.baseCompCtx.disableGradients).toBe(true);
|
|
expect(design.circle1.numSymbols).toBe(4);
|
|
});
|
|
|
|
it("works", () => {
|
|
const s = serializeMandalaDesign(MANDALA_DESIGN_DEFAULTS);
|
|
expect(deserializeMandalaDesign(s)).toEqual(MANDALA_DESIGN_DEFAULTS);
|
|
});
|
|
});
|