core: fix tests

This commit is contained in:
Abdullah Atta
2026-03-09 08:48:08 +05:00
parent 5b3f1c9de2
commit d65f870213
2 changed files with 60 additions and 17 deletions

View File

@@ -0,0 +1,60 @@
/*
This file is part of the Notesnook project (https://notesnook.com/)
Copyright (C) 2023 Streetwriters (Private) Limited
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { expect, test } from "vitest";
import { databaseTest, loginFakeUser } from "./utils";
test("remove orphaned attachments should remove only orphaned attachments", () =>
databaseTest().then(async (db) => {
await loginFakeUser(db);
const hash1 = await db.attachments.save(
"iVBORw0KGgoAAAANSUhEUgAAAAEEAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
"image/png",
"test.png"
);
if (!hash1) throw new Error("Failed to create attachment");
const noteId = await db.notes.add({
title: "Test Note"
});
const attachments = await db.attachments.all
.fields(["attachments.id"])
.where((eb) => eb("hash", "in", [hash1]))
.items();
await db.relations.add(
{
id: noteId,
type: "note"
},
{ id: attachments[0].id, type: "attachment" }
);
const hash = await db.attachments.save(
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
"image/png",
"test.png"
);
if (!hash) throw new Error("Failed to create attachment");
await db.attachments.removeOrphaned();
expect(await db.attachments.exists(hash)).toBe(false);
expect(await db.attachments.exists(hash1)).toBe(true);
expect(await db.attachments.orphaned.count()).toBe(0);
}));

View File

@@ -385,20 +385,3 @@ test("permanently deleted note should not have note fields", () =>
"synced"
]);
}));
test("trash cleanup should remove orphaned attachments", () =>
databaseTest().then(async (db) => {
await loginFakeUser(db);
const hash = await db.attachments.save(
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
"image/png",
"test.png"
);
if (!hash) throw new Error("Failed to create attachment");
await db.trash.cleanup();
expect(await db.attachments.exists(hash)).toBe(false);
expect(await db.attachments.orphaned.count()).toBe(0);
}));