manage_ram_scanner/test_api.js

95 lines
3.7 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Test script for Batch Management API
// Run with: node test-api.js
const BASE_URL = 'http://localhost:4444/api';
async function testAPI() {
console.log('🚀 Testing Batch Management API\n');
// Test 1: Create Batch
console.log('1⃣ Creating a new batch...');
try {
const now = new Date();
const timestamp = now.getFullYear() +
String(now.getMonth() + 1).padStart(2, '0') +
String(now.getDate()).padStart(2, '0') +
String(now.getHours()).padStart(2, '0') +
String(now.getMinutes()).padStart(2, '0') +
String(now.getSeconds()).padStart(2, '0');
const createResponse = await fetch(`${BASE_URL}/batch/save`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
batch_name: `TEST_BATCH_${timestamp}`,
items: [
{ mpn: 'CN_M378A5143DB0-CPB_1620', sn: 'U03A00062074544398' },
{ mpn: 'CN_M378A5143DB0-CPB_1620', sn: 'U03A00062074544399' },
{ mpn: 'CN_M378A5143DB0-CPB_1620', sn: 'U03A00062074544400' }
],
items_mix: [
{ mpn: 'CN_M378A5143DB0-CPB_1621', sn: 'U03A00062074544403' },
{ mpn: 'CN_M378A5143DB0-CPB_1622', sn: 'U03A00062074544404' }
]
})
});
const createData = await createResponse.json();
console.log('✅ Batch created:', createData);
console.log(` - Batch ID: ${createData.batch_id}`);
console.log(` - Items inserted: ${createData.inserted_items}`);
console.log(` - Mixed items inserted: ${createData.inserted_mix_items}\n`);
const batchId = createData.batch_id;
// Test 2: Get All Batches
console.log('2⃣ Getting all batches...');
const getAllResponse = await fetch(`${BASE_URL}/batch/get-all?page=1&limit=10`);
const getAllData = await getAllResponse.json();
console.log(`✅ Found ${getAllData.total} batches`);
console.log(` - Page ${getAllData.page} of ${getAllData.totalPages}\n`);
// Test 3: Get Single Batch
console.log(`3⃣ Getting batch #${batchId}...`);
const getSingleResponse = await fetch(`${BASE_URL}/batch/get/${batchId}`);
const getSingleData = await getSingleResponse.json();
console.log('✅ Batch details:');
console.log(` - Batch Name: ${getSingleData.batch_name}`);
console.log(` - Items: ${getSingleData.items.length}`);
console.log(` - Mixed Items: ${getSingleData.items_mix.length}`);
console.log(` - Created At: ${getSingleData.createdAt}\n`);
// Test 4: Search Items
console.log('4⃣ Searching for items with SN containing "544398"...');
const searchResponse = await fetch(`${BASE_URL}/items/search?q=544398`);
const searchData = await searchResponse.json();
console.log(`✅ Found ${searchData.results.length} items`);
if (searchData.results.length > 0) {
console.log(' First result:', searchData.results[0]);
}
console.log();
// Test 5: Search Batches
console.log('5⃣ Searching for batches with "TEST" in name...');
const searchBatchResponse = await fetch(`${BASE_URL}/batch/get-all?search=TEST`);
const searchBatchData = await searchBatchResponse.json();
console.log(`✅ Found ${searchBatchData.total} batches matching "TEST"\n`);
// Test 6: Delete Batch
console.log(`6⃣ Deleting batch #${batchId}...`);
const deleteResponse = await fetch(`${BASE_URL}/batch/delete/${batchId}`, {
method: 'DELETE'
});
const deleteData = await deleteResponse.json();
console.log('✅ Batch deleted:', deleteData);
console.log(` - Deleted count: ${deleteData.deleted}\n`);
console.log('🎉 All tests completed successfully!');
} catch (error) {
console.error('❌ Test failed:', error.message);
}
}
// Run tests
testAPI();