mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
133 lines
3.8 KiB
JavaScript
133 lines
3.8 KiB
JavaScript
// Test script for Stations CRUD operations
|
||
// Run this in the browser console on the backoffice app
|
||
|
||
async function testStationsCRUD() {
|
||
const API_URL = 'http://localhost:4000';
|
||
const token = localStorage.getItem('auth_token');
|
||
|
||
const headers = {
|
||
'Content-Type': 'application/json',
|
||
'Authorization': token ? `Bearer ${token}` : ''
|
||
};
|
||
|
||
console.log('🧪 Testing Stations CRUD Operations...\n');
|
||
|
||
try {
|
||
// 1. CREATE - Add a new station
|
||
console.log('1️⃣ Testing CREATE Station...');
|
||
const newStation = {
|
||
code: 'TEST',
|
||
name: 'Test Station',
|
||
city: 'Test City',
|
||
countryCode: 'ET',
|
||
lat: '9.0320',
|
||
lng: '38.7469',
|
||
timezone: 'Africa/Addis_Ababa',
|
||
isOperational: true
|
||
};
|
||
|
||
const createResponse = await fetch(`${API_URL}/stations`, {
|
||
method: 'POST',
|
||
headers,
|
||
body: JSON.stringify(newStation)
|
||
});
|
||
|
||
if (!createResponse.ok) {
|
||
throw new Error(`CREATE failed: ${createResponse.status} ${await createResponse.text()}`);
|
||
}
|
||
|
||
const createdStation = await createResponse.json();
|
||
console.log('✅ Station created:', createdStation);
|
||
const stationId = createdStation.id || createdStation.data?.id;
|
||
|
||
if (!stationId) {
|
||
throw new Error('No station ID returned from create');
|
||
}
|
||
|
||
// 2. READ - Get the created station
|
||
console.log('\n2️⃣ Testing READ Station...');
|
||
const readResponse = await fetch(`${API_URL}/stations/${stationId}`, {
|
||
method: 'GET',
|
||
headers
|
||
});
|
||
|
||
if (!readResponse.ok) {
|
||
throw new Error(`READ failed: ${readResponse.status}`);
|
||
}
|
||
|
||
const readStation = await readResponse.json();
|
||
console.log('✅ Station retrieved:', readStation);
|
||
|
||
// 3. UPDATE - Modify the station
|
||
console.log('\n3️⃣ Testing UPDATE Station...');
|
||
const updateData = {
|
||
name: 'Test Station Updated',
|
||
city: 'Test City Updated',
|
||
isOperational: false
|
||
};
|
||
|
||
const updateResponse = await fetch(`${API_URL}/stations/${stationId}`, {
|
||
method: 'PATCH',
|
||
headers,
|
||
body: JSON.stringify(updateData)
|
||
});
|
||
|
||
if (!updateResponse.ok) {
|
||
throw new Error(`UPDATE failed: ${updateResponse.status} ${await updateResponse.text()}`);
|
||
}
|
||
|
||
const updatedStation = await updateResponse.json();
|
||
console.log('✅ Station updated:', updatedStation);
|
||
|
||
// 4. LIST - Get all stations
|
||
console.log('\n4️⃣ Testing LIST Stations...');
|
||
const listResponse = await fetch(`${API_URL}/stations`, {
|
||
method: 'GET',
|
||
headers
|
||
});
|
||
|
||
if (!listResponse.ok) {
|
||
throw new Error(`LIST failed: ${listResponse.status}`);
|
||
}
|
||
|
||
const stations = await listResponse.json();
|
||
console.log('✅ Stations list retrieved:', stations);
|
||
|
||
// 5. DELETE - Remove the test station
|
||
console.log('\n5️⃣ Testing DELETE Station...');
|
||
const deleteResponse = await fetch(`${API_URL}/stations/${stationId}`, {
|
||
method: 'DELETE',
|
||
headers
|
||
});
|
||
|
||
if (!deleteResponse.ok) {
|
||
throw new Error(`DELETE failed: ${deleteResponse.status} ${await deleteResponse.text()}`);
|
||
}
|
||
|
||
console.log('✅ Station deleted successfully');
|
||
|
||
// 6. Verify deletion
|
||
console.log('\n6️⃣ Verifying deletion...');
|
||
const verifyResponse = await fetch(`${API_URL}/stations/${stationId}`, {
|
||
method: 'GET',
|
||
headers
|
||
});
|
||
|
||
if (verifyResponse.status === 404) {
|
||
console.log('✅ Station deletion verified (404 Not Found)');
|
||
} else {
|
||
console.warn('⚠️ Station might still exist');
|
||
}
|
||
|
||
console.log('\n🎉 All tests passed!');
|
||
return { success: true, message: 'All CRUD operations working correctly' };
|
||
|
||
} catch (error) {
|
||
console.error('❌ Test failed:', error);
|
||
return { success: false, error: error.message };
|
||
}
|
||
}
|
||
|
||
// Run the test
|
||
testStationsCRUD();
|