import { List, namekey } from "@alloy-js/core";
import { expect, it } from "vitest";
import {
CommaList,
ObjectExpression,
ObjectProperty,
ObjectSpreadProperty,
} from "../src/index.js";
import { TestFile } from "./utils.js";
it("from js value", () => {
expect(
,
).toRenderTo(`
{
a: 1,
b: 2,
}
`);
});
it("from object property", () => {
const comp = (
);
expect({comp}).toRenderTo(`
{
a: 1,
b: 2
}
`);
});
it("spread property", () => {
const comp = (
abc
);
expect({comp}).toRenderTo(`
{
...abc
}
`);
});
it("Works with both children and jsvalue", () => {
const comp = (
);
expect({comp}).toRenderTo(`
{
a: 1,
b: 2,
c: 3
}
`);
});
it("Handles name conflicts and namekeys", () => {
const nk1 = namekey("a");
const nk2 = namekey("a");
const nk3 = namekey("a", { ignoreNameConflict: true });
const comp = (
);
expect({comp}).toRenderTo(`
{
a: 3,
a_2: 1,
a: 1,
}
`);
});