claude-statusline-powerline
Version:
Beautiful powerline-style statusline for Claude Code with git integration, session tracking, and cost monitoring
93 lines (82 loc) โข 2 kB
JavaScript
/**
* Test icon customization functionality
* This script tests the new icon override feature
*/
const fs = require('fs');
const path = require('path');
// Mock data
const mockData = {
session_id: "test-123",
model: {
display_name: "Claude Sonnet 4"
},
workspace: {
current_dir: "/home/test/project"
}
};
// Test config with custom icons
const testConfig = {
"color_theme": "dark",
"theme": "minimal",
"font_profile": "powerline",
"segments": {
"model": true,
"directory": true,
"git": true,
"session": false
},
"segment_config": {
"segments": [
{
"type": "model",
"enabled": true,
"order": 1,
"style": {
"icons": {
"ai": "๐ค"
}
}
},
{
"type": "directory",
"enabled": true,
"order": 2,
"style": {
"icons": {
"folder": "๐๏ธ"
}
}
}
]
}
};
console.log('๐งช Testing Icon Customization');
console.log('==============================');
// Write test config
const configPath = path.join(__dirname, '..', '.statusline-test.json');
fs.writeFileSync(configPath, JSON.stringify(testConfig, null, 2));
// Import and test our statusline
try {
const { build_statusline } = require('./statusline');
const result = build_statusline(mockData, configPath);
console.log('โ
Icon customization test passed!');
console.log('๐ Result:', result);
// Check if custom icons appear in the result
if (result.includes('๐ค') && result.includes('๐๏ธ')) {
console.log('โ
Custom icons (๐ค ๐๏ธ) detected in output!');
} else {
console.log('โ ๏ธ Custom icons not found in output');
console.log('๐ Looking for default icons...');
if (result.includes('โก') && result.includes('๐')) {
console.log('โน๏ธ Default icons found - check icon override logic');
}
}
} catch (error) {
console.error('โ Test failed:', error.message);
} finally {
// Clean up test config
if (fs.existsSync(configPath)) {
fs.unlinkSync(configPath);
}
}