CEC-749 Generate cert UI (#141)

* Add Create Certificate page

* Tests

* Update permission check

* Use Azure
This commit is contained in:
John Wu
2022-04-18 16:50:51 -07:00
committed by GitHub
parent 81aeedc521
commit 56bef0c34d
28 changed files with 2449 additions and 289 deletions

View File

@@ -0,0 +1,11 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`DownloadFileLink Render 1`] = `
<div>
<a
download="test.txt"
>
test.txt
</a>
</div>
`;

View File

@@ -0,0 +1,32 @@
import React, { useEffect, useState } from "react";
const DownloadFileLink = ({ data, filename, mimetype }) => {
const [link, setLink] = useState("");
const releaseLink = () => {
if (link === "") return;
URL.revokeObjectURL(link);
};
const makeFile = () => {
const file = new Blob([data], { type: mimetype ?? "text/plain" });
releaseLink();
setLink(URL.createObjectURL(file));
};
useEffect(() => {
if (!data) return;
makeFile();
return releaseLink;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [data, filename, mimetype]);
return (
<a download={filename ?? "file.txt"} href={link}>
{filename}
</a>
);
};
export default DownloadFileLink;

View File

@@ -0,0 +1,21 @@
import React from "react";
import { render, waitFor } from "@testing-library/react";
import DownloadFileLink from ".";
describe("DownloadFileLink", () => {
beforeAll(() => {
global.URL.createObjectURL = jest.fn();
global.URL.revokeObjectURL = jest.fn();
});
it("Render", async () => {
const { container } = render(
<DownloadFileLink data={"ABCDEFGHIJK"} filename="test.txt" />
);
await waitFor(() => {
/* render */
});
expect(container).toMatchSnapshot();
});
});