mirror of
https://github.com/ajnart/homarr.git
synced 2026-02-28 01:10:54 +01:00
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();
|
||
|
|
});
|
||
|
|
});
|