Files
mcp-vultr/not_used/test_offline_logic.js

71 lines
2.4 KiB
JavaScript

const assert = require('assert');
const mikrotik = require('./services/mikrotikService');
// Mock axios to avoid actual network calls
mikrotik.execute = async (method, url) => {
if (url.includes('/interface')) {
return []; // No interfaces found
}
if (url.includes('/ppp/secret?name=valid_user')) {
return [{ name: 'valid_user', disabled: 'false' }]; // User exists in secrets
}
if (url.includes('/ppp/secret?name=invalid_user')) {
return []; // User does not exist
}
return [];
};
const gemini = require('./gemini');
// Helper to mock Gemini tool call logic without full API
async function testLogic() {
console.log("Testing Logic: valid_user (offline)...");
// Simulate what gemini.js does inside the tool handler
// 1. Valid Offline User
const call1 = { args: { name: 'valid_user' } };
let result1;
// Manual execution of the logic added to gemini.js
const found1 = await mikrotik.findInterface(call1.args.name);
if (found1) {
result1 = "Should not be found";
} else {
const secretName = call1.args.name.replace(/^pppoe-/, '');
const secret = await mikrotik.getPppoeSecret(secretName);
if (secret) {
result1 = `User '${secretName}' is registered (Valid) but currently OFFLINE (No active session detected).`;
} else {
result1 = `Interface/User '${call1.args.name}' not found.`;
}
}
console.log("Result 1:", result1);
assert.strictEqual(result1, "User 'valid_user' is registered (Valid) but currently OFFLINE (No active session detected).");
// 2. Invalid User
console.log("Testing Logic: invalid_user...");
const call2 = { args: { name: 'invalid_user' } };
let result2;
const found2 = await mikrotik.findInterface(call2.args.name);
if (found2) {
result2 = "Should not be found";
} else {
const secretName = call2.args.name.replace(/^pppoe-/, '');
const secret = await mikrotik.getPppoeSecret(secretName);
if (secret) {
result2 = "Should not be found here";
} else {
result2 = `Interface/User '${call2.args.name}' not found. Please check the name or username.`;
}
}
console.log("Result 2:", result2);
assert.ok(result2.includes("not found"), "Should return not found error");
console.log("\nTEST PASSED: Logic distinguishes between Offline and Invalid users.");
}
testLogic();