chore: Move to Typescript (#2783)
This PR moves the entire project to Typescript. Due to the ~1000 ignores this will lead to a messy codebase for a while, but the churn is worth it – all of those ignore comments are places that were never type-safe previously. closes #1282
This commit is contained in:
77
server/utils/parseAttachmentIds.test.ts
Normal file
77
server/utils/parseAttachmentIds.test.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import { expect } from "@jest/globals";
|
||||
import { v4 as uuidv4 } from "uuid";
|
||||
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 = uuidv4();
|
||||
expect(
|
||||
parseAttachmentIds(`some random text with a uuid ${uuid}
|
||||
|
||||
`).length
|
||||
).toBe(0);
|
||||
});
|
||||
it("should parse attachment ID from markdown", () => {
|
||||
const uuid = uuidv4();
|
||||
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 = uuidv4();
|
||||
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 = uuidv4();
|
||||
const results = parseAttachmentIds(
|
||||
``
|
||||
);
|
||||
expect(process.env.URL).toBeTruthy();
|
||||
expect(results.length).toBe(1);
|
||||
expect(results[0]).toBe(uuid);
|
||||
});
|
||||
it("should parse attachment ID from markdown with title", () => {
|
||||
const uuid = uuidv4();
|
||||
const results = parseAttachmentIds(
|
||||
``
|
||||
);
|
||||
expect(results.length).toBe(1);
|
||||
expect(results[0]).toBe(uuid);
|
||||
});
|
||||
it("should parse multiple attachment IDs from markdown", () => {
|
||||
const uuid = uuidv4();
|
||||
const uuid2 = uuidv4();
|
||||
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 = uuidv4();
|
||||
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 = uuidv4();
|
||||
const results = parseAttachmentIds(
|
||||
`<img src="${process.env.URL}/api/attachments.redirect?id=${uuid}" />`
|
||||
);
|
||||
expect(process.env.URL).toBeTruthy();
|
||||
expect(results.length).toBe(1);
|
||||
expect(results[0]).toBe(uuid);
|
||||
});
|
||||
Reference in New Issue
Block a user