manage_ram_scanner/test_api.js

95 lines
3.7 KiB
JavaScript
Raw 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();