import * as dotenv from 'dotenv'; import { it } from 'node:test'; import { deleteUser, registerUser } from '#db/index.js'; import * as assert from 'node:assert'; import { initDb } from '#db/db.js'; import { disconnect } from 'mongoose'; dotenv.config(); await initDb(); async function createTestUser() { const username = (Math.random() * 1000000).toString(); const password = (Math.random() * 1000000).toString(); const email = (Math.random() * 1000000).toString() + '@example.com'; return { username, password, email, user: await registerUser(username, password, email) }; } await it('Can create user', async () => { await assert.doesNotReject(createTestUser()); }); await it('Can delete user', async () => { const { password, user } = await createTestUser(); const deletePromise = deleteUser(user._id, password); await assert.doesNotReject(deletePromise); }); await it('Cant delete nonexistant user', async () => { await assert.rejects(deleteUser('abc', '')); }); await it('Cant delete user with invalid password', async () => { const user = await createTestUser(); await assert.rejects(deleteUser(user.user._id, 'wrongpassword')); }); await disconnect();