style: 完成所有文件的lint

This commit is contained in:
claude-code-best
2026-05-01 21:39:30 +08:00
parent d136872cc9
commit 6182015005
1333 changed files with 68255 additions and 77882 deletions

View File

@@ -1,138 +1,132 @@
import { describe, expect, test } from "bun:test";
import { parseConfigString } from "../gitConfigParser";
import { describe, expect, test } from 'bun:test'
import { parseConfigString } from '../gitConfigParser'
describe("parseConfigString", () => {
test("parses simple remote url", () => {
const config = '[remote "origin"]\n\turl = https://github.com/user/repo.git';
expect(parseConfigString(config, "remote", "origin", "url")).toBe(
"https://github.com/user/repo.git"
);
});
describe('parseConfigString', () => {
test('parses simple remote url', () => {
const config = '[remote "origin"]\n\turl = https://github.com/user/repo.git'
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBe(
'https://github.com/user/repo.git',
)
})
test("section matching is case-insensitive", () => {
const config = '[REMOTE "origin"]\n\turl = https://example.com';
expect(parseConfigString(config, "remote", "origin", "url")).toBe(
"https://example.com"
);
});
test('section matching is case-insensitive', () => {
const config = '[REMOTE "origin"]\n\turl = https://example.com'
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBe(
'https://example.com',
)
})
test("subsection matching is case-sensitive", () => {
const config = '[remote "Origin"]\n\turl = https://example.com';
expect(parseConfigString(config, "remote", "origin", "url")).toBeNull();
});
test('subsection matching is case-sensitive', () => {
const config = '[remote "Origin"]\n\turl = https://example.com'
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBeNull()
})
test("subsection matching is case-sensitive (positive)", () => {
const config = '[remote "Origin"]\n\turl = https://example.com';
expect(parseConfigString(config, "remote", "Origin", "url")).toBe(
"https://example.com"
);
});
test('subsection matching is case-sensitive (positive)', () => {
const config = '[remote "Origin"]\n\turl = https://example.com'
expect(parseConfigString(config, 'remote', 'Origin', 'url')).toBe(
'https://example.com',
)
})
test("key matching is case-insensitive", () => {
const config = '[remote "origin"]\n\tURL = https://example.com';
expect(parseConfigString(config, "remote", "origin", "url")).toBe(
"https://example.com"
);
});
test('key matching is case-insensitive', () => {
const config = '[remote "origin"]\n\tURL = https://example.com'
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBe(
'https://example.com',
)
})
test("parses quoted value with spaces", () => {
const config = '[user]\n\tname = "John Doe"';
expect(parseConfigString(config, "user", null, "name")).toBe("John Doe");
});
test('parses quoted value with spaces', () => {
const config = '[user]\n\tname = "John Doe"'
expect(parseConfigString(config, 'user', null, 'name')).toBe('John Doe')
})
test("handles escape sequence \\n inside quotes", () => {
const config = '[user]\n\tname = "line1\\nline2"';
expect(parseConfigString(config, "user", null, "name")).toBe(
"line1\nline2"
);
});
test('handles escape sequence \\n inside quotes', () => {
const config = '[user]\n\tname = "line1\\nline2"'
expect(parseConfigString(config, 'user', null, 'name')).toBe('line1\nline2')
})
test("handles escape sequence \\t inside quotes", () => {
const config = '[user]\n\tname = "col1\\tcol2"';
expect(parseConfigString(config, "user", null, "name")).toBe(
"col1\tcol2"
);
});
test('handles escape sequence \\t inside quotes', () => {
const config = '[user]\n\tname = "col1\\tcol2"'
expect(parseConfigString(config, 'user', null, 'name')).toBe('col1\tcol2')
})
test("handles escape sequence \\\\ inside quotes", () => {
const config = '[user]\n\tname = "back\\\\slash"';
expect(parseConfigString(config, "user", null, "name")).toBe("back\\slash");
});
test('handles escape sequence \\\\ inside quotes', () => {
const config = '[user]\n\tname = "back\\\\slash"'
expect(parseConfigString(config, 'user', null, 'name')).toBe('back\\slash')
})
test("handles escape sequence \\\" inside quotes", () => {
const config = '[user]\n\tname = "say \\"hello\\""';
expect(parseConfigString(config, "user", null, "name")).toBe('say "hello"');
});
test('handles escape sequence \\" inside quotes', () => {
const config = '[user]\n\tname = "say \\"hello\\""'
expect(parseConfigString(config, 'user', null, 'name')).toBe('say "hello"')
})
test("strips inline comment with #", () => {
const config = '[remote "origin"]\n\turl = https://example.com # comment';
expect(parseConfigString(config, "remote", "origin", "url")).toBe(
"https://example.com"
);
});
test('strips inline comment with #', () => {
const config = '[remote "origin"]\n\turl = https://example.com # comment'
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBe(
'https://example.com',
)
})
test("strips inline comment with ;", () => {
const config = '[remote "origin"]\n\turl = https://example.com ; comment';
expect(parseConfigString(config, "remote", "origin", "url")).toBe(
"https://example.com"
);
});
test('strips inline comment with ;', () => {
const config = '[remote "origin"]\n\turl = https://example.com ; comment'
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBe(
'https://example.com',
)
})
test("finds value in correct section among multiple sections", () => {
test('finds value in correct section among multiple sections', () => {
const config = [
'[remote "origin"]',
"\turl = https://origin.example.com",
'\turl = https://origin.example.com',
'[remote "upstream"]',
"\turl = https://upstream.example.com",
].join("\n");
expect(parseConfigString(config, "remote", "upstream", "url")).toBe(
"https://upstream.example.com"
);
});
'\turl = https://upstream.example.com',
].join('\n')
expect(parseConfigString(config, 'remote', 'upstream', 'url')).toBe(
'https://upstream.example.com',
)
})
test("returns null for missing key", () => {
const config = '[remote "origin"]\n\turl = https://example.com';
test('returns null for missing key', () => {
const config = '[remote "origin"]\n\turl = https://example.com'
expect(parseConfigString(config, 'remote', 'origin', 'pushurl')).toBeNull()
})
test('returns null for missing section', () => {
const config = '[remote "origin"]\n\turl = https://example.com'
expect(parseConfigString(config, 'branch', 'main', 'merge')).toBeNull()
})
test('returns null for boolean key (no = sign)', () => {
const config = '[core]\n\tbare'
expect(parseConfigString(config, 'core', null, 'bare')).toBeNull()
})
test('returns null for empty config string', () => {
expect(parseConfigString('', 'remote', 'origin', 'url')).toBeNull()
})
test('handles section without subsection', () => {
const config = '[core]\n\trepositoryformatversion = 0'
expect(
parseConfigString(config, "remote", "origin", "pushurl")
).toBeNull();
});
parseConfigString(config, 'core', null, 'repositoryformatversion'),
).toBe('0')
})
test("returns null for missing section", () => {
const config = '[remote "origin"]\n\turl = https://example.com';
expect(parseConfigString(config, "branch", "main", "merge")).toBeNull();
});
test("returns null for boolean key (no = sign)", () => {
const config = "[core]\n\tbare";
expect(parseConfigString(config, "core", null, "bare")).toBeNull();
});
test("returns null for empty config string", () => {
expect(parseConfigString("", "remote", "origin", "url")).toBeNull();
});
test("handles section without subsection", () => {
const config = "[core]\n\trepositoryformatversion = 0";
expect(
parseConfigString(config, "core", null, "repositoryformatversion")
).toBe("0");
});
test("does not match section without subsection when subsection is requested", () => {
const config = "[core]\n\tbare = false";
test('does not match section without subsection when subsection is requested', () => {
const config = '[core]\n\tbare = false'
// Looking for [core "something"] but config has [core]
expect(parseConfigString(config, "core", "something", "bare")).toBeNull();
});
expect(parseConfigString(config, 'core', 'something', 'bare')).toBeNull()
})
test("skips comment-only lines", () => {
test('skips comment-only lines', () => {
const config = [
"# This is a comment",
"; This is also a comment",
'# This is a comment',
'; This is also a comment',
'[remote "origin"]',
"\turl = https://example.com",
].join("\n");
expect(parseConfigString(config, "remote", "origin", "url")).toBe(
"https://example.com"
);
});
});
'\turl = https://example.com',
].join('\n')
expect(parseConfigString(config, 'remote', 'origin', 'url')).toBe(
'https://example.com',
)
})
})