43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { ObjectId } from "mongodb";
|
|
import { describe, expect, it } from "vitest";
|
|
import * as ConfigDal from "../../../src/dal/config";
|
|
|
|
const getConfigCollection = ConfigDal.__testing.getConfigCollection;
|
|
|
|
describe("ConfigDal", () => {
|
|
describe("saveConfig", () => {
|
|
it("should save and update user configuration correctly", async () => {
|
|
//GIVEN
|
|
const uid = new ObjectId().toString();
|
|
await getConfigCollection().insertOne({
|
|
uid,
|
|
config: {
|
|
ads: "on",
|
|
time: 60,
|
|
quickTab: true, //legacy value
|
|
},
|
|
} as any);
|
|
|
|
//WHEN
|
|
await ConfigDal.saveConfig(uid, {
|
|
ads: "on",
|
|
difficulty: "normal",
|
|
} as any);
|
|
|
|
//WHEN
|
|
await ConfigDal.saveConfig(uid, { ads: "off" });
|
|
|
|
//THEN
|
|
const savedConfig = (await ConfigDal.getConfig(
|
|
uid,
|
|
)) as ConfigDal.DBConfig;
|
|
|
|
expect(savedConfig.config.ads).toBe("off");
|
|
expect(savedConfig.config.time).toBe(60);
|
|
|
|
//should remove legacy values
|
|
expect((savedConfig.config as any)["quickTab"]).toBeUndefined();
|
|
});
|
|
});
|
|
});
|