Just a whole lot of crap
This commit is contained in:
161
tests/tui/windows/basicWindowsTest.test.js
Normal file
161
tests/tui/windows/basicWindowsTest.test.js
Normal file
@@ -0,0 +1,161 @@
|
||||
/**
|
||||
* Basic Windows Tests
|
||||
* Simple tests for Windows-specific functionality without complex imports
|
||||
*/
|
||||
|
||||
const {
|
||||
detectWindowsTerminal,
|
||||
getWindowsTerminalCapabilities,
|
||||
getWindowsColorSupport,
|
||||
getWindowsUnicodeSupport,
|
||||
} = require("../../../src/tui/utils/modernTerminal.js");
|
||||
|
||||
describe("Basic Windows Tests", () => {
|
||||
const originalEnv = process.env;
|
||||
const originalPlatform = process.platform;
|
||||
|
||||
beforeEach(() => {
|
||||
// Reset environment
|
||||
process.env = { ...originalEnv };
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: "win32",
|
||||
writable: true,
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
process.env = originalEnv;
|
||||
Object.defineProperty(process, "platform", {
|
||||
value: originalPlatform,
|
||||
writable: true,
|
||||
});
|
||||
});
|
||||
|
||||
describe("Windows Terminal Detection", () => {
|
||||
test("should detect Windows Terminal with WT_SESSION", () => {
|
||||
process.env.WT_SESSION = "abc123-def456";
|
||||
process.env.TERM_PROGRAM = "Windows Terminal";
|
||||
|
||||
const isWindowsTerminal = detectWindowsTerminal();
|
||||
expect(isWindowsTerminal).toBe(true);
|
||||
});
|
||||
|
||||
test("should not detect Windows Terminal without proper env vars", () => {
|
||||
delete process.env.WT_SESSION;
|
||||
delete process.env.TERM_PROGRAM;
|
||||
|
||||
const isWindowsTerminal = detectWindowsTerminal();
|
||||
expect(isWindowsTerminal).toBe(false);
|
||||
});
|
||||
|
||||
test("should not detect Windows Terminal on non-Windows platforms", () => {
|
||||
Object.defineProperty(process, "platform", { value: "linux" });
|
||||
process.env.WT_SESSION = "test";
|
||||
|
||||
const isWindowsTerminal = detectWindowsTerminal();
|
||||
expect(isWindowsTerminal).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Windows Terminal Capabilities", () => {
|
||||
test("should detect Windows Terminal capabilities", () => {
|
||||
process.env.WT_SESSION = "test-session";
|
||||
process.env.COLORTERM = "truecolor";
|
||||
|
||||
const capabilities = getWindowsTerminalCapabilities();
|
||||
expect(capabilities.isWindows).toBe(true);
|
||||
expect(capabilities.isWindowsTerminal).toBe(true);
|
||||
expect(capabilities.supportsUnicode).toBe(true);
|
||||
expect(capabilities.supportsTrueColor).toBe(true);
|
||||
});
|
||||
|
||||
test("should detect Command Prompt limitations", () => {
|
||||
process.env.COMSPEC = "C:\\Windows\\system32\\cmd.exe";
|
||||
delete process.env.WT_SESSION;
|
||||
delete process.env.COLORTERM;
|
||||
delete process.env.TERM_PROGRAM;
|
||||
delete process.env.PSModulePath;
|
||||
|
||||
const capabilities = getWindowsTerminalCapabilities();
|
||||
|
||||
expect(capabilities.isCommandPrompt).toBe(true);
|
||||
expect(capabilities.supportsUnicode).toBe(false);
|
||||
expect(capabilities.supportsTrueColor).toBe(false);
|
||||
expect(capabilities.supportsColor).toBe(true);
|
||||
});
|
||||
|
||||
test("should detect PowerShell capabilities", () => {
|
||||
process.env.PSModulePath = "C:\\Program Files\\PowerShell\\Modules";
|
||||
delete process.env.WT_SESSION;
|
||||
|
||||
const capabilities = getWindowsTerminalCapabilities();
|
||||
expect(capabilities.isPowerShell).toBe(true);
|
||||
expect(capabilities.supportsUnicode).toBe(true);
|
||||
expect(capabilities.supportsTrueColor).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Color Support Detection", () => {
|
||||
test("should detect true color support in Windows Terminal", () => {
|
||||
process.env.WT_SESSION = "test";
|
||||
process.env.COLORTERM = "truecolor";
|
||||
|
||||
const colorSupport = getWindowsColorSupport();
|
||||
expect(colorSupport.supportsTrueColor).toBe(true);
|
||||
expect(colorSupport.supports256Color).toBe(true);
|
||||
expect(colorSupport.supportsBasicColor).toBe(true);
|
||||
});
|
||||
|
||||
test("should detect limited color support in Command Prompt", () => {
|
||||
process.env.COMSPEC = "C:\\Windows\\system32\\cmd.exe";
|
||||
delete process.env.WT_SESSION;
|
||||
delete process.env.COLORTERM;
|
||||
delete process.env.TERM_PROGRAM;
|
||||
delete process.env.PSModulePath;
|
||||
|
||||
const colorSupport = getWindowsColorSupport();
|
||||
expect(colorSupport.supportsTrueColor).toBe(false);
|
||||
expect(colorSupport.supports256Color).toBe(false);
|
||||
expect(colorSupport.supportsBasicColor).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Unicode Support Detection", () => {
|
||||
test("should detect Unicode support in Windows Terminal", () => {
|
||||
process.env.WT_SESSION = "test";
|
||||
|
||||
const unicodeSupport = getWindowsUnicodeSupport();
|
||||
expect(unicodeSupport.supportsUnicode).toBe(true);
|
||||
expect(unicodeSupport.supportsEmoji).toBe(true);
|
||||
expect(unicodeSupport.supportsBoxDrawing).toBe(true);
|
||||
});
|
||||
|
||||
test("should detect limited Unicode support in Command Prompt", () => {
|
||||
process.env.COMSPEC = "C:\\Windows\\system32\\cmd.exe";
|
||||
delete process.env.WT_SESSION;
|
||||
delete process.env.COLORTERM;
|
||||
delete process.env.TERM_PROGRAM;
|
||||
delete process.env.PSModulePath;
|
||||
|
||||
const unicodeSupport = getWindowsUnicodeSupport();
|
||||
expect(unicodeSupport.supportsUnicode).toBe(false);
|
||||
expect(unicodeSupport.supportsEmoji).toBe(false);
|
||||
expect(unicodeSupport.supportsBoxDrawing).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Platform Detection", () => {
|
||||
test("should correctly identify Windows platform", () => {
|
||||
const capabilities = getWindowsTerminalCapabilities();
|
||||
expect(capabilities.isWindows).toBe(true);
|
||||
});
|
||||
|
||||
test("should handle non-Windows platforms", () => {
|
||||
Object.defineProperty(process, "platform", { value: "darwin" });
|
||||
|
||||
const capabilities = getWindowsTerminalCapabilities();
|
||||
expect(capabilities.isWindows).toBe(false);
|
||||
expect(capabilities.isWindowsTerminal).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user