60 lines
2.2 KiB
TypeScript
60 lines
2.2 KiB
TypeScript
|
|
function verifyRedFixes() {
|
|
console.log("--- Verifying RED Template Helper Functions ---");
|
|
|
|
// Test Split Logic which was duplicated
|
|
const splitArtists = (artistString: string) => {
|
|
return artistString.split(/,\s+|&|\s+\/\s+/).map((a: string) => a.trim()).filter((a: string) => a.length > 0);
|
|
};
|
|
|
|
console.log("--- Artist Split Check ---");
|
|
const testStr = "Artist A, Artist B & Artist C";
|
|
const res = splitArtists(testStr);
|
|
console.log(`Input: "${testStr}"`);
|
|
console.log(`Output: ${JSON.stringify(res)}`);
|
|
if (res.length === 3 && res[1] === "Artist B") {
|
|
console.log("PASS: Artist split logic works.");
|
|
} else {
|
|
console.log("FAIL: Artist split logic failed.");
|
|
}
|
|
|
|
console.log("\n--- RED Artist Logic Check ---");
|
|
// Simulate the logic in route.ts
|
|
const mainArtistName = "Artist A, Artist B";
|
|
const allUniqueArtists = new Set(["Artist A", "Artist B", "Artist C"]);
|
|
|
|
const mainArtistComponents = splitArtists(mainArtistName);
|
|
const mainArtists = mainArtistComponents.map(name => ({ name }));
|
|
const withArtists: { name: string }[] = [];
|
|
|
|
allUniqueArtists.forEach(a => {
|
|
if (!mainArtistComponents.includes(a) && a !== 'Various Artists') {
|
|
withArtists.push({ name: a });
|
|
}
|
|
});
|
|
|
|
console.log(`Main Artist Input: "${mainArtistName}"`);
|
|
console.log(`Main Artists Output: ${JSON.stringify(mainArtists)}`);
|
|
console.log(`With Artists Output: ${JSON.stringify(withArtists)}`);
|
|
|
|
if (mainArtists.length === 2 && withArtists.length === 1 && withArtists[0].name === "Artist C") {
|
|
console.log("PASS: RED Template artist logic correct.");
|
|
} else {
|
|
console.log("FAIL: RED Template artist logic incorrect.");
|
|
}
|
|
|
|
console.log("\n--- RED Label Logic Check ---");
|
|
let label = "4059882 Records DK";
|
|
label = label.replace(/(\(c\)|\u00A9|\u2117)?\s*\b(19|20)\d{2}\b\s*/gi, '').trim();
|
|
console.log(`Label Input: "4059882 Records DK"`);
|
|
console.log(`Label Output: "${label}"`);
|
|
|
|
if (label === "4059882 Records DK") {
|
|
console.log("PASS: Label preserved.");
|
|
} else {
|
|
console.log("FAIL: Label corrupted.");
|
|
}
|
|
}
|
|
|
|
verifyRedFixes();
|