Fix backup tests (#620)
This commit is contained in:
@@ -4,6 +4,7 @@ import * as crypto from "crypto";
|
|||||||
import { testWithConfig, test, PageObject } from "./helpers/test_helper";
|
import { testWithConfig, test, PageObject } from "./helpers/test_helper";
|
||||||
import { expect } from "@playwright/test";
|
import { expect } from "@playwright/test";
|
||||||
|
|
||||||
|
const BACKUP_SETTINGS = { testFixture: true };
|
||||||
const testWithLastVersion = testWithConfig({
|
const testWithLastVersion = testWithConfig({
|
||||||
preLaunchHook: async ({ userDataDir }) => {
|
preLaunchHook: async ({ userDataDir }) => {
|
||||||
fs.mkdirSync(path.join(userDataDir), { recursive: true });
|
fs.mkdirSync(path.join(userDataDir), { recursive: true });
|
||||||
@@ -12,6 +13,10 @@ const testWithLastVersion = testWithConfig({
|
|||||||
path.join(__dirname, "fixtures", "backups", "empty-v0.12.0-beta.1.db"),
|
path.join(__dirname, "fixtures", "backups", "empty-v0.12.0-beta.1.db"),
|
||||||
path.join(userDataDir, "sqlite.db"),
|
path.join(userDataDir, "sqlite.db"),
|
||||||
);
|
);
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.join(userDataDir, "user-settings.json"),
|
||||||
|
JSON.stringify(BACKUP_SETTINGS, null, 2),
|
||||||
|
);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -20,6 +25,10 @@ const testWithMultipleBackups = testWithConfig({
|
|||||||
fs.mkdirSync(path.join(userDataDir), { recursive: true });
|
fs.mkdirSync(path.join(userDataDir), { recursive: true });
|
||||||
// Make sure there's a last version file so the version upgrade is detected.
|
// Make sure there's a last version file so the version upgrade is detected.
|
||||||
fs.writeFileSync(path.join(userDataDir, ".last_version"), "0.1.0");
|
fs.writeFileSync(path.join(userDataDir, ".last_version"), "0.1.0");
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.join(userDataDir, "user-settings.json"),
|
||||||
|
JSON.stringify(BACKUP_SETTINGS, null, 2),
|
||||||
|
);
|
||||||
|
|
||||||
// Create backups directory
|
// Create backups directory
|
||||||
const backupsDir = path.join(userDataDir, "backups");
|
const backupsDir = path.join(userDataDir, "backups");
|
||||||
@@ -132,17 +141,11 @@ testWithLastVersion(
|
|||||||
expect(backupMetadata.checksums.database).toBeDefined();
|
expect(backupMetadata.checksums.database).toBeDefined();
|
||||||
|
|
||||||
// Compare the backup files to the original files
|
// Compare the backup files to the original files
|
||||||
const originalSettings = fs.readFileSync(
|
|
||||||
path.join(po.userDataDir, "user-settings.json"),
|
|
||||||
"utf8",
|
|
||||||
);
|
|
||||||
const backupSettings = fs.readFileSync(
|
const backupSettings = fs.readFileSync(
|
||||||
path.join(backupDir, "user-settings.json"),
|
path.join(backupDir, "user-settings.json"),
|
||||||
"utf8",
|
"utf8",
|
||||||
);
|
);
|
||||||
expect(cleanSettings(backupSettings)).toEqual(
|
expect(backupSettings).toEqual(JSON.stringify(BACKUP_SETTINGS, null, 2));
|
||||||
cleanSettings(originalSettings),
|
|
||||||
);
|
|
||||||
|
|
||||||
// For database, verify the backup file exists and has correct checksum
|
// For database, verify the backup file exists and has correct checksum
|
||||||
const backupDbPath = path.join(backupDir, "sqlite.db");
|
const backupDbPath = path.join(backupDir, "sqlite.db");
|
||||||
@@ -214,14 +217,6 @@ testWithMultipleBackups(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
function cleanSettings(settings: string) {
|
|
||||||
const parsed = JSON.parse(settings);
|
|
||||||
delete parsed.hasRunBefore;
|
|
||||||
delete parsed.isTestMode;
|
|
||||||
delete parsed.lastShownReleaseNotesVersion;
|
|
||||||
return parsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
function calculateChecksum(filePath: string): string {
|
function calculateChecksum(filePath: string): string {
|
||||||
const fileBuffer = fs.readFileSync(filePath);
|
const fileBuffer = fs.readFileSync(filePath);
|
||||||
const hash = crypto.createHash("sha256");
|
const hash = crypto.createHash("sha256");
|
||||||
|
|||||||
Reference in New Issue
Block a user