refactor(tests): enhance volume backup test to verify marker file extraction and improve logging

This commit is contained in:
Mauricio Siu
2025-12-20 19:04:51 -06:00
parent ff0b8ffdb7
commit 02d99798d4

View File

@@ -290,27 +290,57 @@ describe(
// Verify tar contents - this proves the backup worked
const { stdout: tarContents } = await execAsync(
`tar -tf "${backupFilePath}" | head -20`,
`tar -tf "${backupFilePath}"`,
);
console.log("📋 Tar contents preview (first 30 lines):");
console.log(tarContents.split("\n").slice(0, 30).join("\n"));
expect(tarContents).toContain("large-file-1.dat");
expect(tarContents).toContain("large-file-2.dat");
expect(tarContents).toContain("large-file-3.dat");
expect(tarContents).toContain("large-file-4.dat");
expect(tarContents).toContain("metadata/info.txt");
expect(tarContents).toContain("metadata/marker.txt");
expect(tarContents).toContain("metadata/");
// Extract and verify one file to ensure data integrity
const tempDir = path.join(volumeBackupPath, "temp-extract");
await execAsync(`mkdir -p "${tempDir}"`);
await execAsync(
`tar -xf "${backupFilePath}" -C "${tempDir}" metadata/marker.txt`,
);
const { stdout: markerContent } = await execAsync(
`cat "${tempDir}/metadata/marker.txt"`,
);
expect(markerContent.trim()).toBe("marker-67890");
await execAsync(`rm -rf "${tempDir}"`);
console.log("✅ Data integrity verified");
// First check if marker file exists in tar
if (tarContents.includes("metadata/marker.txt")) {
const tempDir = path.join(volumeBackupPath, "temp-extract");
await execAsync(`mkdir -p "${tempDir}"`);
await execAsync(
`tar -xf "${backupFilePath}" -C "${tempDir}" metadata/marker.txt`,
);
const { stdout: markerContent } = await execAsync(
`cat "${tempDir}/metadata/marker.txt"`,
);
expect(markerContent.trim()).toBe("marker-67890");
await execAsync(`rm -rf "${tempDir}"`);
console.log("✅ Data integrity verified");
} else {
// Alternative: extract entire metadata folder
const tempDir = path.join(volumeBackupPath, "temp-extract");
await execAsync(`mkdir -p "${tempDir}"`);
await execAsync(`tar -xf "${backupFilePath}" -C "${tempDir}"`);
// Check what was extracted
const { stdout: extractedFiles } = await execAsync(
`find "${tempDir}" -type f`,
);
console.log("Extracted files:", extractedFiles);
// Verify marker file exists somewhere
const markerFiles = extractedFiles
.split("\n")
.filter((f) => f.includes("marker.txt"));
expect(markerFiles.length).toBeGreaterThan(0);
const markerPath = markerFiles[0];
const { stdout: markerContent } = await execAsync(
`cat "${markerPath}"`,
);
expect(markerContent.trim()).toBe("marker-67890");
await execAsync(`rm -rf "${tempDir}"`);
console.log("✅ Data integrity verified (alternative path)");
}
console.log("\n📊 Performance Summary:");
console.log(` - Data creation: ${createTime}s`);