mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-18 22:35:51 +00:00
style: 完成所有文件的lint
This commit is contained in:
@@ -1,97 +1,97 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { describe, expect, test } from 'bun:test'
|
||||
|
||||
const { treeify } = await import("../treeify");
|
||||
const { treeify } = await import('../treeify')
|
||||
|
||||
describe("treeify", () => {
|
||||
test("renders flat tree with two keys", () => {
|
||||
const result = treeify({ a: "value-a", b: "value-b" });
|
||||
const lines = result.split("\n");
|
||||
expect(lines.length).toBe(2);
|
||||
expect(lines[0]).toContain("a");
|
||||
expect(lines[0]).toContain("value-a");
|
||||
expect(lines[1]).toContain("b");
|
||||
expect(lines[1]).toContain("value-b");
|
||||
});
|
||||
describe('treeify', () => {
|
||||
test('renders flat tree with two keys', () => {
|
||||
const result = treeify({ a: 'value-a', b: 'value-b' })
|
||||
const lines = result.split('\n')
|
||||
expect(lines.length).toBe(2)
|
||||
expect(lines[0]).toContain('a')
|
||||
expect(lines[0]).toContain('value-a')
|
||||
expect(lines[1]).toContain('b')
|
||||
expect(lines[1]).toContain('value-b')
|
||||
})
|
||||
|
||||
test("uses branch character for non-last items", () => {
|
||||
const result = treeify({ a: "1", b: "2" });
|
||||
test('uses branch character for non-last items', () => {
|
||||
const result = treeify({ a: '1', b: '2' })
|
||||
// First item uses ├ (branch), last uses └ (lastBranch)
|
||||
expect(result).toContain("├");
|
||||
expect(result).toContain("└");
|
||||
});
|
||||
expect(result).toContain('├')
|
||||
expect(result).toContain('└')
|
||||
})
|
||||
|
||||
test("uses lastBranch for single item", () => {
|
||||
const result = treeify({ only: "val" });
|
||||
expect(result).toContain("└");
|
||||
expect(result).not.toContain("├");
|
||||
});
|
||||
test('uses lastBranch for single item', () => {
|
||||
const result = treeify({ only: 'val' })
|
||||
expect(result).toContain('└')
|
||||
expect(result).not.toContain('├')
|
||||
})
|
||||
|
||||
test("renders nested objects", () => {
|
||||
const result = treeify({ parent: { child: "val" } });
|
||||
expect(result).toContain("parent");
|
||||
expect(result).toContain("child");
|
||||
expect(result).toContain("val");
|
||||
});
|
||||
test('renders nested objects', () => {
|
||||
const result = treeify({ parent: { child: 'val' } })
|
||||
expect(result).toContain('parent')
|
||||
expect(result).toContain('child')
|
||||
expect(result).toContain('val')
|
||||
})
|
||||
|
||||
test("renders arrays with length", () => {
|
||||
const result = treeify({ items: ["1", "2", "3"] } as any);
|
||||
expect(result).toContain("items");
|
||||
expect(result).toContain("[Array(3)]");
|
||||
});
|
||||
test('renders arrays with length', () => {
|
||||
const result = treeify({ items: ['1', '2', '3'] } as any)
|
||||
expect(result).toContain('items')
|
||||
expect(result).toContain('[Array(3)]')
|
||||
})
|
||||
|
||||
test("detects circular references", () => {
|
||||
const obj: Record<string, unknown> = { name: "root" };
|
||||
obj.self = obj;
|
||||
const result = treeify(obj as any);
|
||||
expect(result).toContain("[Circular]");
|
||||
});
|
||||
test('detects circular references', () => {
|
||||
const obj: Record<string, unknown> = { name: 'root' }
|
||||
obj.self = obj
|
||||
const result = treeify(obj as any)
|
||||
expect(result).toContain('[Circular]')
|
||||
})
|
||||
|
||||
test("returns (empty) for empty object", () => {
|
||||
const result = treeify({});
|
||||
expect(result).toBe("(empty)");
|
||||
});
|
||||
test('returns (empty) for empty object', () => {
|
||||
const result = treeify({})
|
||||
expect(result).toBe('(empty)')
|
||||
})
|
||||
|
||||
test("hideFunctions filters out function values", () => {
|
||||
const obj = { name: "test", fn: () => {} };
|
||||
const result = treeify(obj as any, { hideFunctions: true });
|
||||
expect(result).toContain("name");
|
||||
expect(result).not.toContain("fn");
|
||||
});
|
||||
test('hideFunctions filters out function values', () => {
|
||||
const obj = { name: 'test', fn: () => {} }
|
||||
const result = treeify(obj as any, { hideFunctions: true })
|
||||
expect(result).toContain('name')
|
||||
expect(result).not.toContain('fn')
|
||||
})
|
||||
|
||||
test("showValues false hides leaf values", () => {
|
||||
const obj = { name: "test" };
|
||||
const result = treeify(obj, { showValues: false });
|
||||
expect(result).toContain("name");
|
||||
expect(result).not.toContain("test");
|
||||
});
|
||||
test('showValues false hides leaf values', () => {
|
||||
const obj = { name: 'test' }
|
||||
const result = treeify(obj, { showValues: false })
|
||||
expect(result).toContain('name')
|
||||
expect(result).not.toContain('test')
|
||||
})
|
||||
|
||||
test("showValues true shows function as [Function]", () => {
|
||||
const obj = { fn: () => {} };
|
||||
const result = treeify(obj as any, { showValues: true });
|
||||
expect(result).toContain("[Function]");
|
||||
});
|
||||
test('showValues true shows function as [Function]', () => {
|
||||
const obj = { fn: () => {} }
|
||||
const result = treeify(obj as any, { showValues: true })
|
||||
expect(result).toContain('[Function]')
|
||||
})
|
||||
|
||||
test("deep nesting produces correct indentation", () => {
|
||||
const obj = { a: { b: { c: "deep" } } };
|
||||
const result = treeify(obj);
|
||||
const lines = result.split("\n");
|
||||
expect(lines.length).toBe(3);
|
||||
test('deep nesting produces correct indentation', () => {
|
||||
const obj = { a: { b: { c: 'deep' } } }
|
||||
const result = treeify(obj)
|
||||
const lines = result.split('\n')
|
||||
expect(lines.length).toBe(3)
|
||||
// Each level adds indentation
|
||||
expect(lines[2].length).toBeGreaterThan(lines[1].length);
|
||||
});
|
||||
expect(lines[2].length).toBeGreaterThan(lines[1].length)
|
||||
})
|
||||
|
||||
test("handles empty string key with string value", () => {
|
||||
const obj = { " ": "whitespace-key" };
|
||||
const result = treeify(obj);
|
||||
expect(result).toContain("whitespace-key");
|
||||
});
|
||||
test('handles empty string key with string value', () => {
|
||||
const obj = { ' ': 'whitespace-key' }
|
||||
const result = treeify(obj)
|
||||
expect(result).toContain('whitespace-key')
|
||||
})
|
||||
|
||||
test("handles mixed object and primitive values", () => {
|
||||
const obj = { name: "test", nested: { inner: "val" }, count: 5 };
|
||||
const result = treeify(obj as any);
|
||||
expect(result).toContain("name");
|
||||
expect(result).toContain("nested");
|
||||
expect(result).toContain("inner");
|
||||
expect(result).toContain("count");
|
||||
});
|
||||
});
|
||||
test('handles mixed object and primitive values', () => {
|
||||
const obj = { name: 'test', nested: { inner: 'val' }, count: 5 }
|
||||
const result = treeify(obj as any)
|
||||
expect(result).toContain('name')
|
||||
expect(result).toContain('nested')
|
||||
expect(result).toContain('inner')
|
||||
expect(result).toContain('count')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user