mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
091346dfe8
* wip * Remove obsolete snapshots * simplify * chore(test): Convert mocks to TypeScript and tighten fetch mock types Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * Remove unneccessary patches * Migrate to msw instead of custom fetch mock * Address PR review comments - Split chained vi.useFakeTimers().setSystemTime() into separate calls. - Switch test setup to dynamic imports so EventEmitter.defaultMaxListeners assignment runs before module init (static imports were hoisted above it). - Drop redundant NODE_ENV guard in monkeyPatchSequelizeErrorsForJest; its sole caller already gates on env.isTest. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
85 lines
2.5 KiB
TypeScript
85 lines
2.5 KiB
TypeScript
import { randomUUID } from "node:crypto";
|
|
import env from "@server/env";
|
|
import parseAttachmentIds from "./parseAttachmentIds";
|
|
|
|
it("should return an empty array with no matches", () => {
|
|
expect(parseAttachmentIds(`some random text`).length).toBe(0);
|
|
});
|
|
|
|
it("should not return orphaned UUID's", () => {
|
|
const uuid = randomUUID();
|
|
expect(
|
|
parseAttachmentIds(`some random text with a uuid ${uuid}
|
|
|
|
`).length
|
|
).toBe(0);
|
|
});
|
|
|
|
it("should parse attachment ID from markdown", () => {
|
|
const uuid = randomUUID();
|
|
const results = parseAttachmentIds(
|
|
``
|
|
);
|
|
expect(results.length).toBe(1);
|
|
expect(results[0]).toBe(uuid);
|
|
});
|
|
|
|
it("should parse attachment ID from markdown with additional query params", () => {
|
|
const uuid = randomUUID();
|
|
const results = parseAttachmentIds(
|
|
``
|
|
);
|
|
expect(results.length).toBe(1);
|
|
expect(results[0]).toBe(uuid);
|
|
});
|
|
|
|
it("should parse attachment ID from markdown with fully qualified url", () => {
|
|
const uuid = randomUUID();
|
|
const results = parseAttachmentIds(
|
|
``
|
|
);
|
|
expect(results.length).toBe(1);
|
|
expect(results[0]).toBe(uuid);
|
|
});
|
|
|
|
it("should parse attachment ID from markdown with title", () => {
|
|
const uuid = randomUUID();
|
|
const results = parseAttachmentIds(
|
|
``
|
|
);
|
|
expect(results.length).toBe(1);
|
|
expect(results[0]).toBe(uuid);
|
|
});
|
|
|
|
it("should parse multiple attachment IDs from markdown", () => {
|
|
const uuid = randomUUID();
|
|
const uuid2 = randomUUID();
|
|
const results =
|
|
parseAttachmentIds(`
|
|
|
|
some text
|
|
|
|
`);
|
|
expect(results.length).toBe(2);
|
|
expect(results[0]).toBe(uuid);
|
|
expect(results[1]).toBe(uuid2);
|
|
});
|
|
|
|
it("should parse attachment ID from html", () => {
|
|
const uuid = randomUUID();
|
|
const results = parseAttachmentIds(
|
|
`<img src="/api/attachments.redirect?id=${uuid}" />`
|
|
);
|
|
expect(results.length).toBe(1);
|
|
expect(results[0]).toBe(uuid);
|
|
});
|
|
|
|
it("should parse attachment ID from html with fully qualified url", () => {
|
|
const uuid = randomUUID();
|
|
const results = parseAttachmentIds(
|
|
`<img src="${env.URL}/api/attachments.redirect?id=${uuid}" />`
|
|
);
|
|
expect(results.length).toBe(1);
|
|
expect(results[0]).toBe(uuid);
|
|
});
|