Add API key generator and Zotero script builder
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { PDF_KEY_PREFIX, generatePdfKey } from "@/lib/clean-pdf/api-key";
|
||||
|
||||
describe("generatePdfKey", () => {
|
||||
it("формат sbpdf_<base64url>, достаточная длина", () => {
|
||||
const key = generatePdfKey();
|
||||
expect(key.startsWith(PDF_KEY_PREFIX)).toBe(true);
|
||||
expect(key.length).toBeGreaterThanOrEqual(PDF_KEY_PREFIX.length + 32);
|
||||
expect(key.slice(PDF_KEY_PREFIX.length)).toMatch(/^[A-Za-z0-9_-]+$/);
|
||||
});
|
||||
|
||||
it("две генерации различаются", () => {
|
||||
expect(generatePdfKey()).not.toBe(generatePdfKey());
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,12 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { buildZoteroScript } from "@/lib/clean-pdf/zotero-script";
|
||||
|
||||
describe("buildZoteroScript", () => {
|
||||
it("подставляет ключ и адрес школы", () => {
|
||||
const s = buildZoteroScript({ apiKey: "sbpdf_test123", baseUrl: "https://school.second-brain.ru" });
|
||||
expect(s).toContain("'sbpdf_test123'");
|
||||
expect(s).toContain("'https://school.second-brain.ru'");
|
||||
expect(s).toContain("/api/pdf?url=");
|
||||
expect(s).not.toContain("YOUR_KEY");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user