mirror of
https://github.com/ajnart/homarr.git
synced 2026-01-30 03:09:19 +01:00
* chore: add initial db migration * test: add unit tests for packages auth, common, widgets * fix: deep source issues * fix: format issues * wip: add unit tests for api routers * fix: deep source issues * test: add missing unit tests for integration router * wip: board tests * test: add unit tests for board router * fix: remove unnecessary null assertions * fix: deepsource issues * fix: formatting * fix: pnpm lock * fix: lint and typecheck issues * chore: address pull request feedback * fix: non-null assertions * fix: lockfile broken
67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
|
|
import { createId } from "@homarr/db";
|
|
import { users } from "@homarr/db/schema/sqlite";
|
|
import { createDb } from "@homarr/db/test";
|
|
|
|
import { createSalt, hashPassword } from "../../security";
|
|
import { createCredentialsConfiguration } from "../credentials";
|
|
|
|
describe("Credentials authorization", () => {
|
|
it("should authorize user with correct credentials", async () => {
|
|
const db = createDb();
|
|
const userId = createId();
|
|
const salt = await createSalt();
|
|
await db.insert(users).values({
|
|
id: userId,
|
|
name: "test",
|
|
password: await hashPassword("test", salt),
|
|
salt,
|
|
});
|
|
const result = await createCredentialsConfiguration(db).authorize({
|
|
name: "test",
|
|
password: "test",
|
|
});
|
|
|
|
expect(result).toEqual({ id: userId, name: "test" });
|
|
});
|
|
|
|
const passwordsThatShouldNotAuthorize = [
|
|
"wrong",
|
|
"Test",
|
|
"test ",
|
|
" test",
|
|
" test ",
|
|
];
|
|
|
|
passwordsThatShouldNotAuthorize.forEach((password) => {
|
|
it(`should not authorize user with incorrect credentials (${password})`, async () => {
|
|
const db = createDb();
|
|
const userId = createId();
|
|
const salt = await createSalt();
|
|
await db.insert(users).values({
|
|
id: userId,
|
|
name: "test",
|
|
password: await hashPassword("test", salt),
|
|
salt,
|
|
});
|
|
const result = await createCredentialsConfiguration(db).authorize({
|
|
name: "test",
|
|
password,
|
|
});
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
});
|
|
|
|
it("should not authorize user for not existing user", async () => {
|
|
const db = createDb();
|
|
const result = await createCredentialsConfiguration(db).authorize({
|
|
name: "test",
|
|
password: "test",
|
|
});
|
|
|
|
expect(result).toBeNull();
|
|
});
|
|
});
|