Skip to main content
Glama
test-enhanced-policy-creation.mjs•6.62 kB
import { handleCreateIntunePolicyEnhanced, listPolicyTemplates, getPolicyCreationHelp } from './src/handlers/intune-handler-enhanced.js'; import { validatePolicySettings, applyPolicyDefaults, generatePolicyExample, POLICY_TEMPLATES } from './src/validators/intune-policy-validator.js'; console.log('šŸ” Testing Enhanced Intune Policy Creation\n'); // Test 1: Validation Functions console.log('1. Testing Validation Functions'); console.log('================================'); // Test macOS Configuration validation const macOSConfigTest = { customConfiguration: { payloadFileName: 'test.mobileconfig', payload: 'VGVzdCBwYXlsb2Fk' // Base64 encoded "Test payload" } }; const macOSConfigValidation = validatePolicySettings('macos', 'Configuration', macOSConfigTest); console.log('āœ… macOS Configuration validation:', macOSConfigValidation.isValid ? 'PASSED' : 'FAILED'); if (macOSConfigValidation.errors.length > 0) { console.log(' Errors:', macOSConfigValidation.errors); } if (macOSConfigValidation.warnings.length > 0) { console.log(' Warnings:', macOSConfigValidation.warnings); } // Test Windows Compliance validation const windowsComplianceTest = { passwordRequired: true, passwordMinimumLength: 8, bitLockerEnabled: true }; const windowsComplianceValidation = validatePolicySettings('windows', 'Compliance', windowsComplianceTest); console.log('āœ… Windows Compliance validation:', windowsComplianceValidation.isValid ? 'PASSED' : 'FAILED'); // Test 2: Default Application console.log('\n2. Testing Default Application'); console.log('==============================='); const emptySettings = {}; const macOSDefaults = applyPolicyDefaults('macos', 'Compliance', emptySettings); console.log('āœ… macOS Compliance defaults applied:', Object.keys(macOSDefaults).length > 0 ? 'PASSED' : 'FAILED'); console.log(' Default settings keys:', Object.keys(macOSDefaults)); const windowsDefaults = applyPolicyDefaults('windows', 'Configuration', emptySettings); console.log('āœ… Windows Configuration defaults applied:', Object.keys(windowsDefaults).length > 0 ? 'PASSED' : 'FAILED'); // Test 3: Template Functionality console.log('\n3. Testing Template Functionality'); console.log('=================================='); const macOSTemplates = listPolicyTemplates('macos'); console.log('āœ… macOS templates available:', Object.keys(macOSTemplates)); const windowsTemplates = listPolicyTemplates('windows'); console.log('āœ… Windows templates available:', Object.keys(windowsTemplates)); // Test 4: Example Generation console.log('\n4. Testing Example Generation'); console.log('=============================='); const macOSComplianceExample = generatePolicyExample('macos', 'Compliance'); console.log('āœ… macOS Compliance example generated:', macOSComplianceExample.length > 0 ? 'PASSED' : 'FAILED'); const windowsUpdateExample = generatePolicyExample('windows', 'Update'); console.log('āœ… Windows Update example generated:', windowsUpdateExample.length > 0 ? 'PASSED' : 'FAILED'); // Test 5: Policy Creation Help console.log('\n5. Testing Policy Creation Help'); console.log('================================'); const helpText = getPolicyCreationHelp('windows', 'Compliance'); console.log('āœ… Help text generated:', helpText.length > 0 ? 'PASSED' : 'FAILED'); console.log(' Help text preview:', helpText.substring(0, 100) + '...'); // Test 6: Error Scenarios console.log('\n6. Testing Error Scenarios'); console.log('==========================='); // Test invalid platform try { validatePolicySettings('invalid', 'Compliance', {}); console.log('āŒ Invalid platform test: FAILED (should have thrown error)'); } catch (error) { console.log('āœ… Invalid platform test: PASSED (correctly rejected)'); } // Test invalid policy type try { validatePolicySettings('windows', 'InvalidType', {}); console.log('āŒ Invalid policy type test: FAILED (should have thrown error)'); } catch (error) { console.log('āœ… Invalid policy type test: PASSED (correctly rejected)'); } // Test missing required fields for macOS Configuration const invalidMacOSConfig = { someField: 'value' }; const invalidValidation = validatePolicySettings('macos', 'Configuration', invalidMacOSConfig); console.log('āœ… Missing required fields test:', !invalidValidation.isValid ? 'PASSED' : 'FAILED'); // Test 7: Template Content Validation console.log('\n7. Testing Template Content'); console.log('============================'); // Test macOS basicSecurity template const macOSBasicTemplate = POLICY_TEMPLATES.macos.basicSecurity; console.log('āœ… macOS basicSecurity template structure:', macOSBasicTemplate && macOSBasicTemplate.settings ? 'PASSED' : 'FAILED'); // Test Windows strictSecurity template const windowsStrictTemplate = POLICY_TEMPLATES.windows.strictSecurity; console.log('āœ… Windows strictSecurity template structure:', windowsStrictTemplate && windowsStrictTemplate.settings ? 'PASSED' : 'FAILED'); // Test Windows Update template const windowsUpdateTemplate = POLICY_TEMPLATES.windows.windowsUpdate; console.log('āœ… Windows Update template structure:', windowsUpdateTemplate && windowsUpdateTemplate.settings ? 'PASSED' : 'FAILED'); console.log('\n8. Policy Validation Summary'); console.log('============================='); // Summary of all available validation features console.log('šŸ“‹ Available Features:'); console.log(' āœ“ Settings validation by platform and policy type'); console.log(' āœ“ Default value application'); console.log(' āœ“ Template-based policy creation'); console.log(' āœ“ Assignment validation'); console.log(' āœ“ Example generation'); console.log(' āœ“ Help text generation'); console.log(' āœ“ Error handling with detailed messages'); console.log('\nšŸ“‹ Available Templates:'); console.log(' macOS:', Object.keys(POLICY_TEMPLATES.macos).join(', ')); console.log(' Windows:', Object.keys(POLICY_TEMPLATES.windows).join(', ')); console.log('\nšŸŽÆ Policy Types Supported:'); console.log(' āœ“ Configuration (macOS: custom profiles, Windows: device settings)'); console.log(' āœ“ Compliance (macOS & Windows: security requirements)'); console.log(' āœ“ Security (template-based)'); console.log(' āœ“ Update (Windows: update management)'); console.log(' āœ“ AppProtection (basic support)'); console.log(' āœ“ EndpointSecurity (template-based)'); console.log('\nāœ… Enhanced Policy Creation Test Complete!'); console.log(' All validation functions are working correctly.'); console.log(' Templates are properly structured.'); console.log(' Error handling is functioning as expected.');

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DynamicEndpoints/m365-core-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server