65 lines
1.6 KiB
TypeScript
65 lines
1.6 KiB
TypeScript
import { UserSettingsService } from "@/lib/services/user-settings.service";
|
|
|
|
// Mock Prisma
|
|
jest.mock("@/lib/database", () => ({
|
|
prisma: {
|
|
userSettings: {
|
|
findUnique: jest.fn(),
|
|
create: jest.fn(),
|
|
update: jest.fn(),
|
|
delete: jest.fn(),
|
|
upsert: jest.fn(),
|
|
},
|
|
},
|
|
}));
|
|
|
|
describe("UserSettingsService", () => {
|
|
const mockPrisma = require("@/lib/database").prisma;
|
|
|
|
beforeEach(() => {
|
|
jest.clearAllMocks();
|
|
});
|
|
|
|
it("should get user settings", async () => {
|
|
const mockSettings = {
|
|
id: "settings-1",
|
|
userId: "user-1",
|
|
defaultQuality: "medium",
|
|
publicProfile: false,
|
|
allowDownload: true,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
};
|
|
|
|
mockPrisma.userSettings.findUnique.mockResolvedValue(mockSettings);
|
|
|
|
const result = await UserSettingsService.getUserSettings("user-1");
|
|
|
|
expect(result).toEqual(mockSettings);
|
|
expect(mockPrisma.userSettings.findUnique).toHaveBeenCalledWith({
|
|
where: { userId: "user-1" },
|
|
});
|
|
});
|
|
|
|
it("should return existing user settings when they exist", async () => {
|
|
const mockSettings = {
|
|
id: "settings-1",
|
|
userId: "user-1",
|
|
defaultQuality: "medium",
|
|
publicProfile: false,
|
|
allowDownload: true,
|
|
createdAt: new Date(),
|
|
updatedAt: new Date(),
|
|
};
|
|
|
|
mockPrisma.userSettings.findUnique.mockResolvedValue(mockSettings);
|
|
|
|
const result = await UserSettingsService.getOrCreateUserSettings("user-1");
|
|
|
|
expect(result).toEqual(mockSettings);
|
|
expect(mockPrisma.userSettings.findUnique).toHaveBeenCalledWith({
|
|
where: { userId: "user-1" },
|
|
});
|
|
});
|
|
});
|