mealie/frontend/lib/validators/password.test.ts
Hayden fcc5d99d40
chore: frontend testing setup (#1739)
* add vitest

* initialize lib w/ tests

* move to dev dep

* run tests in CI

* update file names

* move api folder to lib

* move api and api types to same folder

* update generator outpath

* rm husky

* i guess i _did_ need those types

* reorg types

* extract validators into testable components

* (WIP) start composable testing

* fix import type

* fix linter complaint

* simplify icon type def

* fix linter errors (maybe?)

* rename client file for sorting
2022-10-22 11:51:07 -08:00

31 lines
918 B
TypeScript

import { describe, test, expect } from "vitest";
import { scorePassword } from "./password";
describe("scorePassword tests", () => {
test("flagged words should return negative number", () => {
const flaggedWords = ["password", "mealie", "admin", "qwerty", "login"];
for (const word of flaggedWords) {
expect(scorePassword(word)).toBe(0);
}
});
test("should return 0 for empty string", () => {
expect(scorePassword("")).toBe(0);
});
test("should return 0 for strings less than 6", () => {
expect(scorePassword("12345")).toBe(0);
});
test("should return positive number for long string", () => {
const result = expect(scorePassword("123456"));
result.toBeGreaterThan(0);
result.toBeLessThan(31);
});
test("should return max number for long string with all variations", () => {
expect(scorePassword("3bYWcfYOwqxljqeOmQXTLlBwkrH6HV")).toBe(100);
});
});