16812: Fixed img preview for collection items
authorDaniel Kutyła <daniel.kutyla@contractors.roche.com>
Mon, 7 Dec 2020 19:39:33 +0000 (20:39 +0100)
committerDaniel Kutyła <daniel.kutyla@contractors.roche.com>
Mon, 7 Dec 2020 19:39:33 +0000 (20:39 +0100)
Arvados-DCO-1.1-Signed-off-by: Daniel Kutyła <daniel.kutyla@contractors.roche.com>

src/components/file-tree/file-thumbnail.test.tsx [new file with mode: 0644]
src/components/file-tree/file-thumbnail.tsx

diff --git a/src/components/file-tree/file-thumbnail.test.tsx b/src/components/file-tree/file-thumbnail.test.tsx
new file mode 100644 (file)
index 0000000..708275b
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
+import * as React from "react";
+import { shallow, configure } from "enzyme";
+import { FileThumbnail } from "./file-thumbnail";
+import { CollectionFileType } from '../../models/collection-file';
+import * as Adapter from 'enzyme-adapter-react-16';
+
+configure({ adapter: new Adapter() });
+
+jest.mock('is-image', () => ({
+    'default': () => true,
+}));
+
+describe("<DropdownMenu />", () => {
+    let file;
+
+    beforeEach(() => {
+        file = {
+            name: 'test-image',
+            type: CollectionFileType.FILE,
+            url: 'http://test.com/c=test-hash/t=test-token/test-image.jpg',
+            size: 300
+        };
+    });
+
+    it("renders file thumbnail with proper src", () => {
+        const fileThumbnail = shallow(<FileThumbnail file={file} />);
+        expect(fileThumbnail.html()).toBe('<img class="Component-thumbnail-1" alt="test-image" src="http://test.com/c=test-hash"/>');
+    });
+});
index e1a0d5e0517dea73a0a2cbea9910f849841fd5cd..8ab554a19aa46acac2ce53b8b5f56e7929fec68a 100644 (file)
@@ -7,6 +7,7 @@ import isImage from 'is-image';
 import { withStyles, WithStyles } from '@material-ui/core';
 import { FileTreeData } from '~/components/file-tree/file-tree-data';
 import { CollectionFileType } from '~/models/collection-file';
+import { sanitizeToken } from "~/views-components/context-menu/actions/helpers";
 
 export interface FileThumbnailProps {
     file: FileTreeData;
@@ -32,5 +33,5 @@ const ImageFileThumbnail = imageFileThumbnailStyle(
         <img
             className={classes.thumbnail}
             alt={file.name}
-            src={file.url} />
+            src={sanitizeToken(file.url, false)} />
 );