107 lines
3.4 KiB
JavaScript
107 lines
3.4 KiB
JavaScript
const fetch = require('node-fetch');
|
|
|
|
// Test data - sample localStorage bookmarks
|
|
const testBookmarks = [
|
|
{
|
|
title: "Test Bookmark 1",
|
|
url: "https://example.com",
|
|
folder: "Test Folder",
|
|
addDate: new Date(),
|
|
icon: "https://example.com/favicon.ico",
|
|
status: "unknown"
|
|
},
|
|
{
|
|
title: "Test Bookmark 2",
|
|
url: "https://google.com",
|
|
folder: "",
|
|
addDate: new Date(),
|
|
status: "unknown"
|
|
},
|
|
{
|
|
title: "Invalid Bookmark",
|
|
url: "not-a-valid-url",
|
|
folder: "Test Folder"
|
|
}
|
|
];
|
|
|
|
async function testMigrationEndpoint() {
|
|
try {
|
|
console.log('Testing migration endpoint...');
|
|
|
|
// Test with merge strategy
|
|
console.log('\n1. Testing merge strategy:');
|
|
const mergeResponse = await fetch('http://localhost:3000/api/bookmarks/migrate', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Cookie': 'authToken=test-token' // You'll need a valid token
|
|
},
|
|
body: JSON.stringify({
|
|
bookmarks: testBookmarks,
|
|
strategy: 'merge'
|
|
})
|
|
});
|
|
|
|
if (mergeResponse.ok) {
|
|
const mergeResult = await mergeResponse.json();
|
|
console.log('Merge result:', JSON.stringify(mergeResult, null, 2));
|
|
} else {
|
|
const error = await mergeResponse.text();
|
|
console.log('Merge error:', error);
|
|
}
|
|
|
|
// Test with replace strategy
|
|
console.log('\n2. Testing replace strategy:');
|
|
const replaceResponse = await fetch('http://localhost:3000/api/bookmarks/migrate', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Cookie': 'authToken=test-token' // You'll need a valid token
|
|
},
|
|
body: JSON.stringify({
|
|
bookmarks: testBookmarks,
|
|
strategy: 'replace'
|
|
})
|
|
});
|
|
|
|
if (replaceResponse.ok) {
|
|
const replaceResult = await replaceResponse.json();
|
|
console.log('Replace result:', JSON.stringify(replaceResult, null, 2));
|
|
} else {
|
|
const error = await replaceResponse.text();
|
|
console.log('Replace error:', error);
|
|
}
|
|
|
|
// Test with invalid data
|
|
console.log('\n3. Testing with invalid data:');
|
|
const invalidResponse = await fetch('http://localhost:3000/api/bookmarks/migrate', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Cookie': 'authToken=test-token' // You'll need a valid token
|
|
},
|
|
body: JSON.stringify({
|
|
bookmarks: "not-an-array",
|
|
strategy: 'merge'
|
|
})
|
|
});
|
|
|
|
if (invalidResponse.ok) {
|
|
const invalidResult = await invalidResponse.json();
|
|
console.log('Invalid data result:', JSON.stringify(invalidResult, null, 2));
|
|
} else {
|
|
const error = await invalidResponse.text();
|
|
console.log('Invalid data error:', error);
|
|
}
|
|
|
|
} catch (error) {
|
|
console.error('Test error:', error);
|
|
}
|
|
}
|
|
|
|
// Run the test
|
|
if (require.main === module) {
|
|
testMigrationEndpoint();
|
|
}
|
|
|
|
module.exports = { testMigrationEndpoint }; |