You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.4 KiB
78 lines
2.4 KiB
import { describe, expect, it } from "vitest";
|
|
import {
|
|
buildFlockAliasedEmail,
|
|
createFreshFlockTestAccount,
|
|
createRandomQqEmail,
|
|
createVerifiedQqAliasedEmail,
|
|
parseFlockEnvPool,
|
|
} from "@/lib/flock/fresh-account";
|
|
|
|
describe("parseFlockEnvPool", () => {
|
|
it("解析逗号与换行分隔", () => {
|
|
expect(parseFlockEnvPool("a@b.com, c@d.com\ne@f.com")).toEqual([
|
|
"a@b.com",
|
|
"c@d.com",
|
|
"e@f.com",
|
|
]);
|
|
});
|
|
});
|
|
|
|
describe("createRandomQqEmail", () => {
|
|
it("1/2/3 开头 + 9 位数字 @qq.com", () => {
|
|
for (let i = 0; i < 20; i += 1) {
|
|
const email = createRandomQqEmail();
|
|
expect(email).toMatch(/^[123]\d{9}@qq\.com$/);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe("createVerifiedQqAliasedEmail", () => {
|
|
it("已验证 QQ + 短别名", () => {
|
|
const email = createVerifiedQqAliasedEmail();
|
|
expect(email).toMatch(/^3457189488\+[a-f0-9]{6}@qq\.com$/);
|
|
});
|
|
});
|
|
|
|
describe("buildFlockAliasedEmail", () => {
|
|
it("Gmail 使用 + 子地址", () => {
|
|
const email = buildFlockAliasedEmail("user@gmail.com", "abc123");
|
|
expect(email).toMatch(/^user\+[a-z0-9]+@gmail\.com$/);
|
|
});
|
|
|
|
it("QQ 基址使用短 + 别名", () => {
|
|
const email = buildFlockAliasedEmail("3457189488@qq.com", "x1y2z3");
|
|
expect(email).toMatch(/^3457189488\+[a-z0-9]+@qq\.com$/);
|
|
});
|
|
});
|
|
|
|
describe("createFreshFlockTestAccount", () => {
|
|
it("默认使用已验证 QQ 短别名(非虚构号码)", () => {
|
|
const prev = {
|
|
pool: process.env.FLOCK_EMAIL_POOL,
|
|
alias: process.env.FLOCK_EMAIL_ALIAS_BASE,
|
|
test: process.env.FLOCK_TEST_EMAIL,
|
|
mode: process.env.FLOCK_EMAIL_MODE,
|
|
};
|
|
delete process.env.FLOCK_EMAIL_POOL;
|
|
delete process.env.FLOCK_EMAIL_ALIAS_BASE;
|
|
delete process.env.FLOCK_TEST_EMAIL;
|
|
delete process.env.FLOCK_EMAIL_MODE;
|
|
|
|
const a = createFreshFlockTestAccount();
|
|
expect(a.email).toMatch(/^3457189488\+[a-z0-9]+@qq\.com$/);
|
|
|
|
process.env.FLOCK_EMAIL_POOL = prev.pool;
|
|
process.env.FLOCK_EMAIL_ALIAS_BASE = prev.alias;
|
|
process.env.FLOCK_TEST_EMAIL = prev.test;
|
|
process.env.FLOCK_EMAIL_MODE = prev.mode;
|
|
});
|
|
|
|
it("使用邮箱池时不重复编造域名", () => {
|
|
const prev = process.env.FLOCK_EMAIL_POOL;
|
|
process.env.FLOCK_EMAIL_POOL = "one@gmail.com,two@outlook.com";
|
|
const a = createFreshFlockTestAccount();
|
|
expect(["one@gmail.com", "two@outlook.com"]).toContain(a.email);
|
|
process.env.FLOCK_EMAIL_POOL = prev;
|
|
});
|
|
});
|