33 lines
1.4 KiB
JavaScript
33 lines
1.4 KiB
JavaScript
const assert = require("assert");
|
|
const Database = require("better-sqlite3");
|
|
const { getFavoriteCommand, getFavoriteExpression } = require("../src/services/user-favorites");
|
|
|
|
const db = new Database(":memory:");
|
|
db.exec(`
|
|
CREATE TABLE command_user_usage (
|
|
command_id TEXT NOT NULL,
|
|
user_id TEXT NOT NULL,
|
|
count INTEGER NOT NULL,
|
|
updated_at INTEGER NOT NULL,
|
|
PRIMARY KEY (command_id, user_id)
|
|
);
|
|
CREATE TABLE expression_user_stats (
|
|
action TEXT NOT NULL,
|
|
user_id TEXT NOT NULL,
|
|
given_count INTEGER NOT NULL,
|
|
received_count INTEGER NOT NULL,
|
|
PRIMARY KEY (action, user_id)
|
|
);
|
|
`);
|
|
db.prepare("INSERT INTO command_user_usage VALUES (?, ?, ?, ?)").run("custom:hello", "user-1", 4, 10);
|
|
db.prepare("INSERT INTO command_user_usage VALUES (?, ?, ?, ?)").run("music", "user-1", 7, 20);
|
|
db.prepare("INSERT INTO expression_user_stats VALUES (?, ?, ?, ?)").run("hug", "user-1", 3, 6);
|
|
db.prepare("INSERT INTO expression_user_stats VALUES (?, ?, ?, ?)").run("wave", "user-1", 4, 1);
|
|
|
|
assert.deepStrictEqual(getFavoriteCommand(db, "user-1", "!"), { command: "!music", count: 7 });
|
|
assert.deepStrictEqual(getFavoriteExpression(db, "user-1"), { action: "hug", count: 9 });
|
|
assert.strictEqual(getFavoriteCommand(db, "missing", "!"), null);
|
|
assert.strictEqual(getFavoriteExpression(db, "missing"), null);
|
|
db.close();
|
|
console.log("User favorites verification passed.");
|