feat(document): copy document json content
This commit is contained in:
2 files changed
+30
-2
No files matched your search
+15
@@ -21,6 +21,10 @@ const documentJsonEditor = vi.hoisted(() => ({
|
||||
openSearch: vi.fn().mockReturnValue(true),
|
||||
}));
|
||||
|
||||
const clipboard = vi.hoisted(() => ({
|
||||
copyToClipboard: vi.fn(),
|
||||
}));
|
||||
|
||||
const dataGrid = vi.hoisted(() => ({
|
||||
fullExportResult: undefined as
|
||||
| ((onProgress?: (info: { rowsExported: number; totalRows: number | null }) => void) => Promise<
|
||||
@@ -95,6 +99,10 @@ vi.mock("@/stores/settingsStore", () => ({
|
||||
useSettingsStore: () => settings,
|
||||
}));
|
||||
|
||||
vi.mock("@/lib/common/clipboard", () => ({
|
||||
copyToClipboard: clipboard.copyToClipboard,
|
||||
}));
|
||||
|
||||
vi.mock("@/components/grid/DataGrid.vue", () => {
|
||||
return {
|
||||
default: defineComponent({
|
||||
@@ -324,6 +332,8 @@ beforeEach(async () => {
|
||||
dataGrid.paginate = undefined;
|
||||
dataGrid.editable = true;
|
||||
documentJsonEditor.openSearch.mockClear();
|
||||
clipboard.copyToClipboard.mockReset();
|
||||
clipboard.copyToClipboard.mockResolvedValue(undefined);
|
||||
backend.documentDeleteDocument.mockResolvedValue(undefined);
|
||||
backend.documentInsertDocument.mockResolvedValue("created");
|
||||
backend.documentUpdateDocument.mockResolvedValue(1);
|
||||
@@ -1086,6 +1096,7 @@ describe("DocumentBrowser MongoDB filter value types", () => {
|
||||
const jsonText = viewer.querySelector<HTMLElement>(".cm-line .json-string")!;
|
||||
const documentId = root!.querySelector<HTMLInputElement>('input[aria-label^="_id:"]')!;
|
||||
expect(root!.firstElementChild?.classList.contains("select-none")).toBe(true);
|
||||
expect(viewer.classList.contains("select-text")).toBe(true);
|
||||
expect(documentId.readOnly).toBe(true);
|
||||
expect(documentId.value).toBe("document-1");
|
||||
expect(documentId.classList.contains("select-text")).toBe(true);
|
||||
@@ -1097,6 +1108,10 @@ describe("DocumentBrowser MongoDB filter value types", () => {
|
||||
expect(viewer.querySelector<HTMLElement>("[data-redis-json-editor-stub]")?.dataset.lineNumbers).toBe("false");
|
||||
expect(viewer.querySelector<HTMLElement>("[data-redis-json-editor-stub]")?.dataset.presentation).toBe("viewer");
|
||||
|
||||
buttonWithTitle("grid.copy").click();
|
||||
await flushUi();
|
||||
expect(clipboard.copyToClipboard).toHaveBeenCalledWith(expect.stringContaining('"_id": "document-1"'));
|
||||
|
||||
documentId.setSelectionRange(0, documentId.value.length);
|
||||
expect(documentId.selectionStart).toBe(0);
|
||||
expect(documentId.selectionEnd).toBe(documentId.value.length);
|
||||
|
||||
Reference in new issue
Block a user