This commit is contained in:
44
frontend/__tests__/utils/generate.spec.ts
Normal file
44
frontend/__tests__/utils/generate.spec.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
import * as generate from "../../src/ts/utils/generate";
|
||||
|
||||
describe("hexadecimal", () => {
|
||||
it("should generate a random hexadecimal string", () => {
|
||||
const hex = generate.getHexadecimal();
|
||||
expect(hex.length).toSatisfy(
|
||||
(len: number) => len % 2 === 0,
|
||||
"The length of the hexadecimal string should be even.",
|
||||
);
|
||||
|
||||
expect(hex.length).toBeGreaterThanOrEqual(2);
|
||||
expect(hex.length).toBeLessThanOrEqual(16);
|
||||
expect(hex).toMatch(/^[0-9a-f]+$/);
|
||||
});
|
||||
});
|
||||
|
||||
describe("specials", () => {
|
||||
it("should generate valid special character strings", () => {
|
||||
let foundComma = false;
|
||||
let foundPeriod = false;
|
||||
const expectedSpecials = generate.__testing.specials;
|
||||
|
||||
// Generate 1000 special "words" and check each
|
||||
for (let i = 0; i < 1000; i++) {
|
||||
const specials = generate.getSpecials();
|
||||
|
||||
// Check min/max length (1-7 as per implementation)
|
||||
expect(specials.length).toBeGreaterThanOrEqual(1);
|
||||
expect(specials.length).toBeLessThanOrEqual(7);
|
||||
|
||||
// Check that every character is from the expected specials array
|
||||
for (const char of specials) {
|
||||
expect(expectedSpecials).toContain(char);
|
||||
if (char === ",") foundComma = true;
|
||||
if (char === ".") foundPeriod = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure comma and period were found during the test
|
||||
expect(foundComma).toBe(true);
|
||||
expect(foundPeriod).toBe(true);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user