Files
mycode/jsonhero-web/tests/jsonColumnView.test.ts
2026-02-04 12:18:35 +08:00

79 lines
1.7 KiB
TypeScript

import { generateColumnViewNode } from "../app/utilities/jsonColumnView";
describe("generateColumnViewNode", () => {
test("it creates the correct tree structure for the passed in JSON", () => {
const json = {
string: "foo bar",
data: { foo: "bar" },
array: [
{
string: "foo bar",
},
],
};
expect(generateColumnViewNode(json)).toMatchInlineSnapshot(`
Object {
"children": Array [
Object {
"children": Array [],
"icon": [Function],
"id": "$.string",
"name": "string",
"subtitle": "foo bar",
"title": "string",
},
Object {
"children": Array [
Object {
"children": Array [],
"icon": [Function],
"id": "$.data.foo",
"name": "foo",
"subtitle": "bar",
"title": "foo",
},
],
"icon": [Function],
"id": "$.data",
"name": "data",
"subtitle": "1 field",
"title": "data",
},
Object {
"children": Array [
Object {
"children": Array [
Object {
"children": Array [],
"icon": [Function],
"id": "$.array.0.string",
"name": "string",
"subtitle": "foo bar",
"title": "string",
},
],
"icon": [Function],
"id": "$.array.0",
"longTitle": "Index 0",
"name": "0",
"subtitle": "1 field",
"title": "0",
},
],
"icon": [Function],
"id": "$.array",
"name": "array",
"subtitle": "1 item",
"title": "array",
},
],
"icon": [Function],
"id": "$",
"name": "root",
"title": "root",
}
`);
});
});