Files
2025-05-28 09:55:51 +08:00

47 lines
1.4 KiB
TypeScript

import { faker } from "@faker-js/faker";
import { createGenerator } from "ts-json-schema-generator";
export const generateRandomNumbersArray = (): number[] =>
Array.from({ length: 6 }, () => faker.number.int({ min: 0, max: 9 }));
const getRandomChar = (characters: string): string => {
const randomIndex = Math.floor(Math.random() * characters.length);
return characters[randomIndex];
};
export function jsonSchema(projectFileName: string, typeName: string) {
const generator = createGenerator({
path: `./tests/helpers/models/${projectFileName}`,
type: typeName,
});
return generator.createSchema(typeName);
}
export const randomNameWithPrefix = async (prefix: string) => {
return `test-${prefix}-${faker.lorem.word({
length: { min: 3, max: 7 },
})}-${faker.number.int({ min: 1000, max: 9999 })}`;
};
export const returnPassword = async (length: number) => {
const uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const lowercaseLetters = "abcdefghijklmnopqrstuvwxyz";
const numbers = "0123456789";
const symbols = "!@#$%^&*()";
const allCharacters = uppercaseLetters + lowercaseLetters + numbers + symbols;
let result = "";
result += getRandomChar(uppercaseLetters);
result += getRandomChar(lowercaseLetters);
result += getRandomChar(numbers);
result += getRandomChar(symbols);
for (let i = result.length; i < length; i++) {
result += getRandomChar(allCharacters);
}
return result;
};