This commit is contained in:
Andras Schmelczer 2025-07-12 12:59:26 +01:00
parent fc19e650ca
commit 0f441e38d8
No known key found for this signature in database
GPG key ID: FC8F2C3D3D1A718C
24 changed files with 553 additions and 68 deletions

View file

@ -7,8 +7,7 @@ import { FileOperations } from "./file-operations";
import { Logger } from "../tracing/logger";
import { assertSetContainsExactly } from "../utils/assert-set-contains-exactly";
import type { FileSystemOperations } from "./filesystem-operations";
import fs from "fs";
import { TextWithCursors } from "reconcile-text";
import type { TextWithCursors } from "reconcile-text";
class MockDatabase implements Partial<Database> {
public getLatestDocumentByRelativePath(

View file

@ -4,6 +4,7 @@ import type { Database, RelativePath } from "../persistence/database";
import { SafeFileSystemOperations } from "./safe-filesystem-operations";
import type { TextWithCursors } from "reconcile-text";
import { isBinary, reconcile } from "reconcile-text";
import { isFileTypeMergable } from "../utils/is-file-type-mergable";
export class FileOperations {
private static readonly PARENTHESES_REGEX = / \((\d+)\)$/;
private readonly fs: SafeFileSystemOperations;

View file

@ -3,7 +3,7 @@ import type { FileSystemOperations } from "./filesystem-operations";
import type { Logger } from "../tracing/logger";
import { Locks } from "../utils/locks";
import { FileNotFoundError } from "./file-not-found-error";
import { TextWithCursors } from "reconcile-text";
import type { TextWithCursors } from "reconcile-text";
/**
* Decorates `FileSystemOperations` to replace errors with `FileNotFoundError`

View file

@ -77,11 +77,6 @@ export class SyncClient {
const history = new SyncHistory(logger);
await initWasm(
// eslint-disable-next-line
(wasmBin as any).default // it is loaded as a base64 string by webpack
);
let state = (await persistence.load()) ?? {
settings: undefined,
database: undefined

View file

@ -25,4 +25,4 @@ describe("isFileTypeMergable", () => {
expect(isFileTypeMergable("HELLO.JSON")).toBe(false);
expect(isFileTypeMergable("my/config.yml")).toBe(false);
});
});
});

View file

@ -1,6 +1,6 @@
export function isFileTypeMergable(pathOrFileName: string): boolean {
const parts = pathOrFileName.split(".");
const fileExtension = parts.at(-1) || "";
const fileExtension = parts.at(-1) ?? "";
return ["md", "txt"].includes(fileExtension.toLowerCase());
}

View file

@ -33,7 +33,7 @@ async function runTest({
console.info(`Using vault name: ${vaultName}`);
const initialSettings: Partial<SyncSettings> = {
isSyncEnabled: true,
token: " test-token-change-me ", // same as in backend/config-e2e.yml with spaces
token: " test-token-change-me ", // same as in sync-server/config-e2e.yml with spaces
vaultName: randomCasing(vaultName) + (Math.random() > 0.5 ? " " : ""), // extra spaces shouldn't matter
syncConcurrency: concurrency,
remoteUri: "http://localhost:3000"