import sinon from "sinon"; import { getAppSettings, updateAppSettings } from "../../db/mongo/modules/settingsModule.js"; import AppSettings from "../../db/models/AppSettings.js"; const mockAppSettings = { appName: "Test App", }; describe("SettingsModule", function () { let appSettingsFindOneStub, appSettingsFindOneAndUpdateStub; beforeEach(function () { appSettingsFindOneStub = sinon.stub(AppSettings, "findOne"); appSettingsFindOneAndUpdateStub = sinon.stub(AppSettings, "findOneAndUpdate"); }); afterEach(function () { sinon.restore(); }); describe("getAppSettings", function () { it("should return app settings", async function () { appSettingsFindOneStub.resolves(mockAppSettings); const result = await getAppSettings(); expect(result).to.deep.equal(mockAppSettings); }); it("should handle an error", async function () { const err = new Error("Test error"); appSettingsFindOneStub.throws(err); try { await getAppSettings(); } catch (error) { expect(error).to.deep.equal(err); } }); }); describe("updateAppSettings", function () { it("should update app settings", async function () { appSettingsFindOneAndUpdateStub.resolves(mockAppSettings); const result = await updateAppSettings(mockAppSettings); expect(result).to.deep.equal(mockAppSettings); }); it("should handle an error", async function () { const err = new Error("Test error"); appSettingsFindOneAndUpdateStub.throws(err); try { await updateAppSettings(mockAppSettings); } catch (error) { expect(error).to.deep.equal(err); } }); }); });